Layer Module Injection is a new pattern to enforce separation of concerns between domain logic and infrastructure services. Mario Cardinal and Joe Shirey will explain why to use abstract classes and interfaces as a means to reduce dependency surface. Mario and Joe will discuss the techniques of dependency injection and inversion of control to reduce the coupling between classes. In the same way, they will discuss benefits to modularize and decouple with layers using namespaces. The goal is to explain a new approach to simplify managing dependencies between the modules which compose a program. At the end of this discussion you will understand why architects worry so much about coupling, cohesion and separation of concerns.