public Position<T> insertNodeConcised(T value) throws NoEmptyTreeException,
			InvalidPositionException {
		if (root == null)
			return addRoot(value);
		BTPosition<T> current = checkPosition(root);
		while (true) {
			if (comp.compare(current.element(), value) > 0) {// left
				if (current.getLeft() == null) {
					BTPosition<T> newNode = new BinaryTreeNode<T>(value, null,
							null, current);
					current.setLeft(newNode);
					return newNode;
				}
				current = current.getLeft();
			} else if (comp.compare(current.element(), value) < 0) {// right
				if (current.getRight() == null) {
					BTPosition<T> newNode = new BinaryTreeNode<T>(value, null,
							null, current);
					current.setRight(newNode);
					return newNode;
				}
				current = current.getRight();
			} else
				return null;
		}
	}