Abstract event manager

sharing event manager API
Is there a reason for the name?