It is only after a tedious code analysis step that latent limitations of the underlying concepts of an existing application become visible. Then one chooses a different (less limited) strategy and when about to re-implement part of the application, one discovers that, due to the lack of modularization and integration support, the resulting new application entirely fails to operate with the existing tool set or that it will take a major additional effort to disguise the new application. Eventually, the new applications inherit major parts of the old application, but the old application often remains in use. This code duplication creates severe pitfalls and poses latent problems for all maintenance efforts.