Code

Phase 2 - remove duplicated code and leave a single copy of each function.