Dependency Injection Multiple Implementations Experience