ADD: eventFactory class