Does this handle returning a cached version or always create a new one? Reason I am asking is the docblock says it returns cached or new but I only see it creating a new service.