void addChild(Node n) {

			synchronized (leaves) {

				// remove from leaves
				leaves.remove(this);
				// add new leaf
				leaves.add(n);

			}

			// add the child
			children.add(n);
			// link parent in new child
			n.parent = this;

			// now compute the confidence score for the node
			n.confidenceScore = n.computeNodeConfidenceScore();

			// if this node is the most confident chain, update the value
			if (n.confidenceScore > mostConfidentChainScore) {
				mostConfidentChain = n;
				mostConfidentChainScore = n.confidenceScore;
			}

		}