add keypress support