         }
     }
 
-    func get<Service>(name serviceName: String? = nil) throws -> Service {
+    func get<Service>(name serviceName: ServiceName? = nil) throws -> Service {
         let name = buildName(for: Service.self, serviceName)
         var service: Service! // this will *always* contain a value if no error occurs, hence the `!` 💪
 


    private func validateTypeAndReturn<Service>(service anyService: Any) throws -> Service {
        guard let service = anyService as? Service else {
            throw ServiceLocatorError.serviceTypeMismatch(expected: "\(Service.self)", found: "\(type(of: anyService))")
        }

        return service

        }
    }

    private func buildName<Service>(`for` _: Service.Type, _ serviceName: ServiceName? = nil) -> ServiceName {
        return serviceName ?? "\(Service.self)"
    }

