|SOURCE|
[Common::EventManager]
* EventManager is responsible for handling any incoming events as well as
  processing stored events
* Provided that an EventListener is associated with an EventType, Events will
  be routed to the correct EventListener (if the EventListener consumes the
  event, it will be removed from the queue)
[Common::Events]
* EventData no longer holds the dispatch time, instead the Event class does,
  this was because the time will be present in the event, not necessarily in
  the event's data