The rapid evolution of Design Patterns has hampered the benefits gained from using Design Patterns. The increase in the number of Design Patterns makes a common vocabulary unmanageable and the tracing problem obscures the documentation that should be enhanced by using Design Patterns. We present an analysis of the Design Patterns that will strongly reduce the number of Fundamengn Patterns and show how strong language abstractions can solve the tracing problem and thereby enhance the documentation.