@bakura10 then instead of injecting it, make it optional:

```php
public function __construct(Foo $foo, AsyncPlugin $bar = null) {
    $this->asyncPlugin = $bar ?: new AsyncPlugin();
```

Less code, much cleaner, less overhead