Refactoring Project entity and logic