a lot of refactoring to make the code cleaner, ShortcutTableModel now properly uses events instead of references to the controller.