docs: def handle_message(self,
                         message: BaseMessage,
                         responder: Responder,
                         create_task: True):
          """
          Public method to handle a message. It requires:
  
              - A message from the platform
              - A responder from the platform
  
          If `create_task` is true, them the task will automatically be added to
          the loop. However, if it is not, the coroutine will be returned and it
          will be the responsibility of the caller to run/start the task.
          """
  
          coro = self._handle_message(message, responder)
  
          if create_task:
              loop = asyncio.get_event_loop()
              loop.create_task(coro)
          else:
              return coro