TODO first
separe sub commands into each c source file
Merge branch 'separate_cmds'
Done separating