did some refactoring and extract methods for project page