adding key events support