Refactoring 1
Refactoring 2
Refactoring 3