Make EventBuilder slightly cleaner

Encapsulate a partially-built event object rather than recreating
all of its fields