custom dependency injection work and organization