refactoring project class