private void rotateLeft(JuzerBranch<E> e) {

		JuzerBranch<E> eParent = e.getParent();
		JuzerBranch<E> eRight = e.Right();

		if (eRight == null)
			return;

		JuzerBranch<E> eNewRight = eRight.Left();

		eRight.setLeft(e);
		e.setParent(eRight);

		e.setRight(eNewRight);
		if (eNewRight != null) {
			eNewRight.setParent(e);
		}

		if (eParent == null) {
			if (e != this.root)
				throw new RuntimeException("What the moose?");
			else {
				// eRight.setParent(null);
				this.root = eRight;
			}
		} else {
			boolean isLeft = eParent.Left() != null && eParent.Left() == e;
			if (isLeft) {
				eParent.setLeft(eRight);

			} else {
				eParent.setRight(eRight);
			}
		}
		eRight.setParent(eParent);

	}