add key input support