public void pruneExternalNode(JadeNode node) {
		if (node.isInternal()) {
			return;
		}
		/*
		 * how this works
		 *
		 * get the parent = parent
		 * get the parent of the parent = mparent
		 * remove parent from mparent
		 * add !node from parent to mparent
		 */
		double bl = 0;
		JadeNode parent = (JadeNode) node.getParent();
		if(parent.getChildCount()==2){
			JadeNode other = null;
			for (int i = 0; i < parent.getChildCount(); i++) {
				if (parent.getChild(i) != node) {
					other = parent.getChild(i);
				}
			}
			bl = other.getBL() + parent.getBL();
			if(parent != this.root){
				JadeNode mparent = (JadeNode) parent.getParent();
				if (mparent != null) {
					mparent.addChild(other);
					other.setBL(bl);
					for (int i = 0; i < mparent.getChildCount(); i++) {
						if (mparent.getChild(i) == parent) {
							mparent.removeChild(parent);
							break;
						}
					}
				}
				this.update();
			}else{//parent == root
				other.setParent(null);
				this.setRoot(other);
				this.update();
			}
		}else{
			parent.removeChild(node);
			this.update();
		}
	}