Abstract event manager

sharing event manager API
Why would this exist here?