refactoring project class to be cleaner