code: def fire_event(self, event, *args, **kwargs):
          
          remove = []
          event_stack = self._events[event]
          for x in event_stack:
              x['callback'](*args, **kwargs)
              if x['single']:
                  remove.append(x)
          for x in remove:
              event_stack.remove(x)
docs: Execute the listeners for this event passing any arguments
          along.