Begining of the refactoring