code: def start(self):
          
          if not self.valid:
              err = ("\nMessengers and listeners that still need set:\n\n"
                     "messengers : %s\n\n"
                     "listeners : %s\n") 
              raise InvalidApplication(err % (self.needed_messengers,
                                              self.needed_listeners))
          self.dispatcher.start()
docs: If we have a set of plugins that provide our expected listeners and
          messengers, tell our dispatcher to start up. Otherwise, raise
          InvalidApplication