First of all, consider that I don't like nor want initializers in the modules. Hereby, I'm allowing this exception because you didn't force the initializer into configuration (the end user has to do so, otherwise unexpected behaviour may be experienced).

I don't think that we need to implement 3 classes with interdependencies across all modules... that adds a lot of complexity with very little gain: let the end user build the initializer with the service name as constructor param and we got a simple and re-usable solution :)