A statement I've had to make quite a bit lately, in two contexts: '' To Managers'' I've had to explain that object-oriented programming allows for code encapsulation; which allows you, with the use of a unit test suite, to carefully evolve programs and data models into a simpler, easily maintainable code base. '' To Developers'' There is also a mind set of the old PlanToThrowOneAway, that just does not seem to fit well with refactoring a code base. By 'throwing away' code, there is significant risk in the possibility of altering interfaces, etc. Evolve, don't throw away... -- ChadThompson ---- For educational purpose you might DoItAgainToLearn. ---- See also: SecondSystemEffect, RewritingIsNotRefactoring ---- CategoryRefactoring