and more functionality, clean code, refactoring