Refactoring stage 4
Refactoring stage 4.1