first take on dependency injection