Currently the argv is used to pass information around from command to command. This is bad practice as it melds the CLI and the under-the-hood features.
Instead, there should be a conversion from args -> some command object, which can then be sent as a json file or something