Complete Refactoring