separated hotkey logic into its own class