factored out commonality between mouse & touch event handlers in to ioEventHandlers base class