refactoring project