This seems like it could be problematic. If the previous call to this function used different arguments than the current call, you'd only get the previously created service. This may not be a problem in practice, but design wise it isn't good.