code: func NewEvent(eventID, eventType string, data interface{}, meta interface{}) *Event {
  	e := &Event{}
  
  	e.EventID = eventID
  	if eventID == "" {
  		e.EventID = NewUUID()
  	}
  
  	e.EventType = eventType
  	if eventType == "" {
  		e.EventType = typeOf(data)
  	}
  
  	e.Data = data
  	e.MetaData = meta
  	return e
  }
docs: // NewEvent creates a new event object.
  //
  // If an empty eventId is provided a new uuid will be generated automatically
  // and retured in the event.
  // If an empty eventType is provided the eventType will be set to the
  // name of the type provided.
  // data and meta can be nil.