Refactoring CLI to simplify and integrate with Spark model better

NOT READY FOR MERGE
Yes. ;)