all commands should exec through the same method
Merge branch 'cmds' into parser
more shell-like logic