Add SerializableKeyEvent
Add the rest of the events, commenting, and tests.