docs: public static Option getVariedOption(OptionHandler learner, String variedParamName) {
  		// split nested option string
  		String[] singleOptions = variedParamName.split("/");
  		
  		// check if first level is "learner", which has already been resolved
  		int startIndex = 0;
  		if (singleOptions.length > 0 && singleOptions[0].equals("learner/")) {
  			startIndex = 1;
  		}
  		
  		// iteratively create objects and get next options for each level
  		Option learnerVariedParamOption = null;
  		OptionHandler currentOptionHandler = learner;
  		for (int i = startIndex; i < singleOptions.length; i++) {
  			for (Option opt : currentOptionHandler.getOptions().getOptionArray()) {
  				if (opt.getName().equals(singleOptions[i])) {
  					if (opt instanceof ClassOption) {
  						currentOptionHandler = (OptionHandler) 
  								((ClassOption) opt).getPreMaterializedObject();
  					}
  					else {
  						learnerVariedParamOption = opt;
  					}
  					break;
  				}
  			}
  		}
  		
  		return learnerVariedParamOption;
  	}