extracted eventHandler interface