anchor.diff:  					return !anInput.userVariableConfig || angular.equals(anInput.userVariableConfig, {});
   				}, function(isUserInputConfigEmptyNow, wasUserInputConfigEmptyBefore) {
   					if (isUserInputConfigEmptyNow === true && wasUserInputConfigEmptyBefore === false) {
  -						var indexOfUserInputConfig = _.findIndex(viewModel.selectedStep.userStepConfig.inputs, function(aUserInputConfig) {
  +						var indexOfUserInputConfig = _.findIndex(step.userStepConfig.inputs, function(aUserInputConfig) {
   							return Variable.keyFromVariableConfig(aUserInputConfig) == anInput.key();
   						});
   
  -						viewModel.selectedStep.userStepConfig.inputs.splice(indexOfUserInputConfig, 1);
  -
  -						if (angular.equals(viewModel.selectedStep.userStepConfig.inputs, [])) {
  -							delete viewModel.selectedStep.userStepConfig["inputs"];
  +						step.userStepConfig.inputs.splice(indexOfUserInputConfig, 1);
  +
  +						if (angular.equals(step.userStepConfig.inputs, [])) {
  +							delete step.userStepConfig["inputs"];
   						}
   					}
   
   					if (isUserInputConfigEmptyNow === false && wasUserInputConfigEmptyBefore === true) {
  -						if (!viewModel.selectedStep.userStepConfig.inputs) {
  -							viewModel.selectedStep.userStepConfig.inputs = [];
  +						if (!step.userStepConfig.inputs) {
  +							step.userStepConfig.inputs = [];
   						}
   
  -						var indexOfUserInputConfig = _.findIndex(viewModel.selectedStep.userStepConfig.inputs, function(aUserInputConfig) {
  +						var indexOfUserInputConfig = _.findIndex(step.userStepConfig.inputs, function(aUserInputConfig) {
   							return Variable.keyFromVariableConfig(aUserInputConfig) == anInput.key();
   						});
   
   						if (indexOfUserInputConfig != -1) {
  -							viewModel.selectedStep.userStepConfig.inputs.splice(indexOfUserInputConfig, 1);
  +							step.userStepConfig.inputs.splice(indexOfUserInputConfig, 1);
   						}
   
  -						viewModel.selectedStep.userStepConfig.inputs.push(anInput.userVariableConfig);
  +						step.userStepConfig.inputs.push(anInput.userVariableConfig);
   					}
   				}));
   			});
  
positive.code: 	$scope.$watch(function() {
  		return viewModel.selectedStep;
  	}, function(selectedStep) {
  		viewModel.outputsOfSelectedStep = selectedStep && selectedStep.defaultStepConfig ? _.map(selectedStep.defaultStepConfig.outputs, function(anDefaultOutputConfig) {
  			return new Variable(undefined, anDefaultOutputConfig);
  		}) : undefined;
  		viewModel.openedOutputs = [];
  	});
  
  	viewModel.outputSelected = function(output) {
  		if (_.contains(viewModel.openedOutputs, output)) {
  
negative.code: 				viewModel.openedInputs.push(anInput);
  			})
  		});
  	}
  
  	viewModel.inputCategoryToggled = function(inputCategory) {
  		if (_.contains(viewModel.openedInputCategories, inputCategory)) {
  