@Override
	public void addNodeToOutline (NodeImpl node, int level) {
		
		// for appendage, we need to consider the current node's level
		// and the node-to-be-added's level
		int levelDelta = level - currentLevel ;
		
		// in case we need to go back up the outline
		int climbCounter = 0 ;
		Node tempNode = null ;
		
		// reader/writer has obtained and set up the node's data
		// we finish up by connecting the node to the outline
		
		// the node's part of this outline
		node.setTree(tree, false);
		
		// case out on the change in levels for appendation
		
		// if the new node's a child of the current node
		if (levelDelta == 1) {
			
			currentNode.appendChild(node) ;
			} // end if
			
		// if the new node's a sibling of the current node
		else if (levelDelta == 0) {
				
			currentNode.getParent().appendChild(node) ;
			} // end if
			
		// if the new node's an elder of the current node
		else if (levelDelta < 0) {
			
			// jump back as far as necessary
			
			// for each unit of delta, climb up a parent
			for (	climbCounter = levelDelta, tempNode = currentNode;
				climbCounter < 0 ;
				climbCounter++ ){
					
				tempNode = tempNode.getParent();
				
				} // end for
			
			// now we're at the level we need to be
			// add a sibling
			tempNode.getParent().appendChild(node) ;
			
			
			} // end if an elder
			
		// this node becomes the new current node
		currentNode = node;
		
		// its level becomes the current level
		currentLevel = level ;
		
		} // end addNodeToOutline