static <T> T loadService(Class<T> ofType) {
        List<String> implClasses = loadServicesImplementations(ofType);
        for (String implClass : implClasses) {
            T result = attemptLoad(ofType, implClass);
            if (result != null) {
                if (LOG.isLoggable(Level.FINEST)) {
                    LOG.finest("Selected " + ofType.getSimpleName()
                            + " implementation: "
                            + result.getClass().getName());
                }
                return result;
            }
        }
        throw(new IllegalStateException(
                "Could not load " + ofType.getName() + " implementation"));
    }