private node createNewState(Integer selectedTaskIndex) {
		ArrayList<ArrayList<Object>> newState= new ArrayList<ArrayList<Object>>();
		node child = null;
		ArrayList<Object> currentTaskNode = nodeState.get(selectedTaskIndex);
		actionStates currentActionState = (actionStates) currentTaskNode.get(1);

		for(int i=0; i<nodeState.size(); i++){
			newState.add(new ArrayList<Object>());
			newState.get(i).add(nodeState.get(i).get(0));
			newState.get(i).add(nodeState.get(i).get(1));			
		}

		if(currentActionState == actionStates.PICKEDUP) {		 //selected task is PICKEDUP
			child = calculateNewStateParameters(newState.get(selectedTaskIndex), newState);
		} else if(capacity >= ((Task) currentTaskNode.get(0)).weight) {
			child = calculateNewStateParameters(newState.get(selectedTaskIndex), newState);
		}
		return child;
	}