diff --git a/src/matrix.rs b/src/matrix.rs
index 5e7c3fd7edbec359d200b73304115f2ab73a1465..6fbb1c7e38eb92ce33f996612a8ded7a2045e1c3 100644
--- a/src/matrix.rs
+++ b/src/matrix.rs
@@ -10,7 +10,8 @@ use matrix_sdk::{
             push_rules::PushRulesEvent,
             room::message::{MessageEventContent, MessageType, TextMessageEventContent},
             room::topic::TopicEventContent,
-            AnyRoomEvent, AnySyncRoomEvent, StateEvent, SyncMessageEvent, SyncStateEvent,
+            AnyMessageEventContent, AnyRoomEvent, AnySyncRoomEvent, StateEvent, SyncMessageEvent,
+            SyncStateEvent,
         },
         Int, MilliSecondsSinceUnixEpoch, UserId,
     },
@@ -22,16 +23,15 @@ async fn on_room_message(
     room: Room,
     _encryption_info: Option<EncryptionInfo>,
 ) {
+    let sender_id = ev.sender;
+    let own_id = room.own_user_id();
+    if sender_id.as_str() == own_id.as_str() { return; }
+
     if let Room::Joined(room) = room {
         let room_name = match room.name() {
             Some(n) => "<".to_string() + &n + ">",
             None => "<--none-->".to_string(),
         };
-        let read_receipt = match room.user_read_receipt(room.own_user_id()).await {
-            Ok(Some((_ev_id, _receipt))) => "receipt".to_string(),
-            Err(e) => e.to_string(),
-            Ok(None) => "None".to_string(),
-        };
         let body = match ev.content.msgtype {
             MessageType::Text(TextMessageEventContent { body, .. }) => "Text: ".to_string() + &body,
             _ => "Unsupported type".to_string(),
@@ -40,23 +40,30 @@ async fn on_room_message(
             "===\n\
              JOINED-ROOM: {}\n\
              ROOM-NAME: {}\n\
-             READ-RECEIPT: {}\n\
              FROM: {}\n\
              MSG: {}",
             room.room_id(),
             room_name,
-            read_receipt,
-            ev.sender,
+            sender_id,
             body
         );
+        let content =
+            AnyMessageEventContent::RoomMessage(MessageEventContent::text_plain("Hello world"));
+        room.send(content, None).await.unwrap();
+    }
+}
+
+fn log_joined_rooms(client: &Client) {
+    for room in client.joined_rooms() {
+        println!("Got joined room: <{}>", room.name().unwrap());
     }
+
 }
 
 pub async fn connect_and_handle(config: Config) -> Result<()> {
     let alice = UserId::try_from(config.user_name)?;
     let client = Client::new(config.homeserver_url)?;
 
-    // Login
     client
         .login(
             alice.localpart(),
@@ -67,10 +74,9 @@ pub async fn connect_and_handle(config: Config) -> Result<()> {
         .await?;
     println!("Logged as: {}", alice);
 
-    // Don't respond to old messages
     client.sync_once(SyncSettings::default()).await?;
+    log_joined_rooms(&client);
 
-    // https://docs.rs/ruma/0.4.0/ruma/events/enum.AnySyncMessageEvent.html
     client.register_event_handler(on_room_message).await;
 
     println!("Entering sync loop");