this construct repeats very often, maybe a refactor into method passing the event names