Refactoring - phase 5.
Refactoring - phase 6.
Refactoring - phase 7.
Refactoring - phase 8.