A custom event manager