Another way to solve this is to have the `Service` class return the same service if the actual service name already exist (btw, this example should provide a "name", I think). Of course with a way to always recreate a new instance with a `recreate` parameter that could be passed there. IOW, a kind of services factory.

Thoughts?