Singleton vs Dependency Injection