code: @SuppressWarnings("unchecked")
  	public synchronized <T extends SebEvent> T constructEvent(Class<T> eventCls, SebContext context) {
  		try {
  			return (T) eventCls.getConstructor().newInstance().with(context, LocalDateTime.now());
  		} catch (Exception e) {
  			throw new EventConstructException("Unable to construct event " + eventCls.getName(), e);
  		}
  	}
docs: Constructs a new instance of {@link SebEvent} subclass with given context
  and local time.
  
  @param eventCls
  The event class to construct
  @param context
  The context to use
  @return The event instance