Refactored the command system to improve reuse.
Merge branch 'comand_system_refactor' into development.