The power of preparatory refactoring - Martin Fowler