fixed keylistener