Refactoring
Total refactoring