Reworked the event system to simplify and eliminate duplicate code