Refactored event structs into something a little more generic.