refactor keymap