The Great Refactoring (Part 1)