Refactoring Legacy Code: Part 6 - Attacking Complex Methods