Iteration 2: Refactoring.