Events are organized into hierarchy of event classes.
Model has event sources and event listeners.
Event classes define event types.
Many event types have subtypes