just to be clear - I only implemented the command handling (command groups, lists, pipelines, backgrounding, etc.). The rest (mainly parsing) was pre-written by the CS61 staff in the distribution code