implement functor support in event handlers