EventGenerator brought to a more generic state, where the arguments of the method are passed as a dict