Play Deep Dive into Dependency Injection and Writing Decoupled Quality Code and Testable Software