Move events into their own module