Encapsulating events into objects.

Working on encapsulating events into separate objects.