If we have a set of plugins that provide our expected listeners and
        messengers, tell our dispatcher to start up. Otherwise, raise
        InvalidApplication

def start(self):
        """If we have a set of plugins that provide our expected listeners and
        messengers, tell our dispatcher to start up. Otherwise, raise
        InvalidApplication
        """
        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()