Add unit test to check commands are bound to correct handlers
Convert CommandIdConstants to an enum
Test refactor using CommandId enum
Rename enum commands
Further test refactoring
Command enum rename
Removing some magic string usages
Refactoring - adding automatic registration of commands