Some work on fleshing out the cli structure.
Break out the cli implementation into multiple files.