Taming Legacy Code: Safely Evolving with TDD and the Strangler Pattern