Refactor commands
Merge branch 'command-refactor'