Refactoring or Rebuilding: Working with Legacy Code