added abstraction to event members