Refactoring Porject