Abstract event manager

sharing event manager API
Does the event manager really need to close the fd?  In general I'm slightly confused by the role of the event manager it seems slightly conflated.