Refactoring CLI to simplify and integrate with Spark model better

NOT READY FOR MERGE