Refactoring, part 7.
Refactoring, part 8.
Refactoring, part 9.
Refactoring, part 10.
Refactoring, part 11.
Refactoring, part 12.