private void insertAtNode(E e, TreeNode<E> current, TreeNode<E> parent) {
		if(current == null) {
			TreeNode<E> newNode = new TreeNode<E>(e);
			if (parent != null) {
				newNode.parentTreeNode = parent;
				if(newNode.compareTo(parent) > 0) parent.rightTreeNode = newNode;
				else parent.leftTreeNode = newNode;
			} else {
				rootTreeNode = newNode;
			}
		}
		else if (e.compareTo(current.value) < 0) {
			insertAtNode(e, current.getLeftTree(), current);
		}
		else if (e.compareTo(current.value) > 0) {
			insertAtNode(e, current.getRightTree(), current);
		}
	}