major refactoring
breaking up functions into their own classes/objects
identifying commands with arbitrary regex rather than "starts with"