almost finished event manager

almost