1.1. Writing maintainable code1.1.1. Unlearning DI1.1.2. Understanding the purpose of DI1.2. Hello DI1.2.1. Hello DI code1.2.2. Benefits of DI1.3. What to inject and what not to inject1.3.1. Seams1.3.2. Stable Dependencies1.3.3. Volatile Dependencies1.4. DI scope1.4.1. Object Composition1.4.2. Object Lifetime1.4.3. Interception1.4.4. DI in three dimensions1.5. Summary