Rethought the event handler system.