refactoring of the project