Major improvements
- decouple getCommands method