code: function(instance, searchNode, x, y, cost) {
  		var adjacentCoordinateX = searchNode.x+x;
  		var adjacentCoordinateY = searchNode.y+y;
  		
  		if (instance.endX === adjacentCoordinateX && instance.endY === adjacentCoordinateY) {
  			instance.isDoneCalculating = true;
  			var path = [];
  			var pathLen = 0;
  			path[pathLen] = {x: adjacentCoordinateX, y: adjacentCoordinateY};
  			pathLen++;
  			path[pathLen] = {x: searchNode.x, y:searchNode.y};
  			pathLen++;
  			var parent = searchNode.parent;
  			while (parent!=null) {
  				path[pathLen] = {x: parent.x, y:parent.y};
  				pathLen++;
  				parent = parent.parent;
  			}
  			path.reverse();
  			instance.callback(path);
  		}
  
  		if (pointsToAvoid[adjacentCoordinateX + "_" + adjacentCoordinateY] === undefined) {
  			for (var i = 0; i < acceptableTiles.length; i++) {
  				if (collisionGrid[adjacentCoordinateY][adjacentCoordinateX] === acceptableTiles[i]) {
  					
  					var node = coordinateToNode(instance, adjacentCoordinateX, 
  						adjacentCoordinateY, searchNode, cost);
  					
  					if (node.list === undefined) {
  						node.list = EasyStar.Node.OPEN_LIST;
  						instance.openList.insert(node);
  					} else if (node.list === EasyStar.Node.OPEN_LIST) {
  						if (searchNode.costSoFar + cost < node.costSoFar) {
  							node.costSoFar = searchNode.costSoFar + cost;
  							node.parent = searchNode;
  						}
  					}
  					break;
  				}
  			}
  
  		}
  	}
docs: Private methods follow