some comments in keylistener