Event Refactor

A bunch of refactors for events to hopefully make things more performant and easier for future developers to work with.