todo cli with classes and some refactoring