refactored Event to enforce setting the EventType