Every developer must create his own event manager