seperate keydown and keyup handling