Dependency Injection

Enables testing

Introduction