refactoring: inject MMSDispatcher to listeners instead of injecting listeners