docs: public void refreshVariedParamNameOption()
  	{
  		String currentEvalTaskCLIString = 
  				this.evalTaskOption.getValueAsCLIString();
  		
  		// check if an update is actually needed
  		if (this.lastEvalTaskCLIString == null || 
  			!this.lastEvalTaskCLIString.equals(currentEvalTaskCLIString)) 
  		{
  			this.lastEvalTaskCLIString = currentEvalTaskCLIString;
  			
  			// create result lists
  			List<String> optionNames = new ArrayList<String>();
  			List<String> optionDescriptions = new ArrayList<String>();
  			
  			// recursively add options
  			ALPrequentialEvaluationTask evalTask = 
  					(ALPrequentialEvaluationTask) 
  					this.evalTaskOption.getPreMaterializedObject();
  			this.addRecursiveNumberOptions(
  					evalTask.learnerOption, optionNames, optionDescriptions, "");
  			
  			// get option names and descriptions and look for default option
  			int defaultIndex = -1;
  			for (int i = 0; i < optionNames.size(); i++) {
  				if (optionNames.get(i).endsWith("/budget") || 
  					(optionNames.get(i).contains("budget") && defaultIndex < 0)) 
  				{
  					defaultIndex = i;
  				}
  			}
  			
  			// pass new options to the EditableMultiChoiceOption
  			this.variedParamNameOption.setOptions(
  					optionNames.toArray(new String[0]), 
  					optionDescriptions.toArray(new String[0]), 
  					defaultIndex >= 0 ? defaultIndex : 0);
  		}
  	}