The hardest part is two algorithms or business logic routines that are nearly identical. What to do? Frequently, all solutions look equally bad!