move out EventHelper to its own file