Full Refactoring