split the Event class out into another file, expand its functionality, and document it.
General tidying up.