improved EventManager