moved event dispatching mechanism to EventDispatcher