use keyboard events instead