Abstract event manager

sharing event manager API
why?  isn't this just the socket fd?