project refactoring