private void checkFull(Node node) {
		for (Node n : node.children) {
			if (n == null)
				return; // not full, nothing to do
			else if (n.full == false)
				return; // not full, nothing to do
		}
		
		// all children are full, flag and check recursively upwards
		node.full = true;
		if (node != root)
			checkFull(node.parent);
	}