Refactor CommandLineInterface and associated spec file. No longer relies on metaprogramming to test recursion. Methods are much more modular.