Abstract event manager

sharing event manager API
Can't this get hung?