finished cli, still needs refactoring though