Split built-in command to separate files
Fix a weird bug related to cmd argv