EventDispatcher refactoring