code: public List<Service> getServices(String type, String algorithm) {
          return new ServiceList(type, algorithm);
      }
docs: Return a List containing all the Services describing implementations
  of the specified algorithms in precedence order. If no implementation
  exists, this method returns an empty List.
  
  The elements of this list are determined lazily on demand.
  
  The List returned is NOT thread safe.