- internal event handling now supports mouse and keyboard events