Examples and Introduction for Dependency Injection and Inversion of Control