anchor.diff:  
   	yPos += 100;
   
  -	var cEnd = fsa.State.create({ position: {x: 200, y: yPos}, label: "End" });
  -	allNodes.push(cEnd);
  -	nodes2[res.end.name] = {node: cEnd, to:[] };
  +//	var cEnd = fsa.State.create({ position: {x: 200, y: yPos}, label: "End" });
  +//	allNodes.push(cEnd);
  +//	nodes2[res.end.name] = {node: cEnd, to:[] };
   	weightedNodes[res.end.name] = { to : [] };
   	keyLength++;
   
  -	// var sortOrder = 1;
   	var currentKey = "start"; ;
  -	// weightedNodes[currentKey].sortOrder = sortOrder;
   	addSortOrder(currentKey, 0);
   
   	// Invert the index TODO pretty bad logic.
  
positive.code: 	var keyLength = 0;
  	var allNodes = [];
  	var nodes2 = {};
  	var cStart = fsa.State.create({ 
  		position: {x: 200, y: yPos}
  		, label: "Start" 
  		, radius: 15
  		, attrs: {
  			stroke: "blue",
  			fill: "yellow",
  			id: "aaa"
  		  }
  	});
  	allNodes.push(cStart);
  	nodes2["start"] = { node: cStart, to : [ res.start.to] };
  	weightedNodes["start"] = { to : [ res.start.to] };
  	keyLength++;
  
  
  	for(var i = 0; i < res.decisionOrForkOrJoin.length; i++){
  		yPos += 100;
  		var circle = fsa.State.create({ position: {x: 200, y: yPos}, label: res.decisionOrForkOrJoin[i].name });
  //		if(res.decisionOrForkOrJoin[i].java !=null){
  //			var java = res.decisionOrForkOrJoin[i].java;
  //		}
  
  		allNodes.push(circle);
  
  		// kill does not have ok and error
  		if(res.decisionOrForkOrJoin[i].ok === undefined && res.decisionOrForkOrJoin[i].error === undefined){
  			nodes2[res.decisionOrForkOrJoin[i].name] = {node: circle, to : []};
  			weightedNodes[res.decisionOrForkOrJoin[i].name] = { to : [] };
  		}else{
  			nodes2[res.decisionOrForkOrJoin[i].name] = {node: circle, to : [ res.decisionOrForkOrJoin[i].ok.to, res.decisionOrForkOrJoin[i].error.to]};
  			weightedNodes[res.decisionOrForkOrJoin[i].name] = { to : [res.decisionOrForkOrJoin[i].ok.to, res.decisionOrForkOrJoin[i].error.to] };
  		}
  		keyLength++;
  
negative.code: 		}
  	}
  
  	var currentSortOrder = 0;
  	var yPos = 40;
  	for(var i = 0; i < sortedNodeNames.length; i++){
  		// how many same sort order there are?
  		var sameSortCount = 1
  		for(; i + sameSortCount < sortedNodeNames.length ;sameSortCount++){
  			if(sortedNodeNames[i].sortOrder != sortedNodeNames[i + sameSortCount].sortOrder){
  				break;
  			}
  		}
  
  		if(i + sameSortCount <= sortedNodeNames.length ){
  			break;
  		}
  
  		for(var j = 0; j < sameSortCount; j++){
  			var circle = fsa.State.create({ position: {x: (PAPER_WITH/(sameSortCount + 1) * (j+1)), y: yPos}, label: sortedNodeNames[i + j].name });
  		}
  
  		yPos += 80;
  
  	}
  
  
  //	for(var prop in nodes2){	
  //		var current = nodes2[prop];
  