public E removeRB(E e) {

		JuzerBranch<E> target = getTarget(e);
		
		if(target.isLeaf()){
			
				remove(e);
		}else{

		JuzerBranch<E> current = getLeftMost(target.Right());

		
		
		if (current == null) {
			
			

			
		} else if (current.isLeaf()) {
			if (current.isRed()) {

				remove(current.Data());
				current.changeColor(target.getColor());

				current.setLeft(target.Left());
				current.setRight(target.Right());
				current.setParent(target.getParent());

				if (target.isLeftChild()) {
					target.getParent().setLeft(current);
				} else {
					target.getParent().setRight(current);
				}

			} else {
				if (current.getSibling().isLeaf()) {

					current.getSibling().changeColor(RED);
					current.getParent().changeColor(RED);
					current.changeColor(RED);

					current.setLeft(target.Left());
					current.setRight(target.Right());
					current.setParent(target.getParent());

					if (target.isLeftChild()) {
						target.getParent().setLeft(current);
					} else {
						target.getParent().setRight(current);
					}

				} else {

				}

			}
		} else {

		}
		
		}
		return e;

	}