Part 3
Refactor