How events are processed is now handled by discrete class structure