reworked key input