Dependency injection and inverse of control playground