Refactored the command model to simplify it and resolve some issues with how arguments are parsed