docs: def listen(self, orb, listeners):
          """This method allows to loop over the listeners and trigger the :py:meth:`_bisect` method
          in case a watched parameter has its state changed.
  
          Args:
              orb (Orbit): The current state of the orbit
              listeners (iterable): List of Listener objects
          Return:
              list of Orbit: Orbits corresponding to events, sorted by dates
          """
  
          if isinstance(listeners, Listener):
              listeners = [listeners]
  
          orb.event = None
          results = []
          for listener in listeners:
              if listener.check(orb):
                  results.append(self._bisect(listener.prev, orb, listener))
  
              # Saving of the current value for the next iteration
              listener.prev = orb
          return sorted(results, key=lambda x: x.date)