The return of the plugin

This might make testing difficult, we may have to switch to ``std::unique_ptr``.