I'm wondering if it is such a good idea to have so many levels for handling of events emission and processing. As I see it, it may not be necessary to have EngineStage delegating registerEventEmitters() and subscribeForEvent() calls to the eventsHandler. EventsHandler could just be a singleton accessable from elsewhere