Heavy refactoring mid-commit pt. 4: Events