docs: private AMethodWithItsArgs findBestMethodUsingParamNames(Set<Method> methods, Set<String> paramNames, ObjectNode paramNodes) {
  		ParameterCount max = new ParameterCount();
  		
  		for (Method method : methods) {
  			List<Class<?>> parameterTypes = getParameterTypes(method);
  			
  			int typeNameCountDiff = parameterTypes.size() - paramNames.size();
  			if (!acceptParamCount(typeNameCountDiff)) {
  				continue;
  			}
  			
  			ParameterCount parStat = new ParameterCount(paramNames, paramNodes, parameterTypes, method);
  			if (!acceptParamCount(parStat.nameCount - paramNames.size())) {
  				continue;
  			}
  			if (hasMoreMatches(max.nameCount, parStat.nameCount) || parStat.nameCount == max.nameCount && hasMoreMatches(max.typeCount, parStat.typeCount)) {
  				max = parStat;
  			}
  		}
  		if (max.method == null) {
  			return null;
  		}
  		return new AMethodWithItsArgs(max.method, paramNames, max.allNames, paramNodes);
  		
  	}