Fixes a code comment typo.
Performs further refactoring.
Splits code up into more files. Combining all related
components for a given event type into its respective
file.

Adds a great deal of code comments, covering explanations
of what various types, methods and constants mean.