code: def add_listener(self, callback, event_type=None):
          
          listener_uid = uuid4()
          # TODO: listeners should be stored in dict and accessed/deleted directly. Add
          # convenience method such that MatrixClient.listeners.new(Listener(...)) performs
          # MatrixClient.listeners[uuid4()] = Listener(...)
          self.listeners.append(
              {
                  'uid': listener_uid,
                  'callback': callback,
                  'event_type': event_type
              }
          )
          return listener_uid
docs: Add a listener that will send a callback when the client recieves
          an event.
  
          Args:
              callback (func(roomchunk)): Callback called when an event arrives.
              event_type (str): The event_type to filter for.
  
          Returns:
              uuid.UUID: Unique id of the listener, can be used to identify the listener.