void orphans(Leaf where) {
		List<Leaf> orphans = null;
		int insertDeletionsIndex = 0;
		if ((where == null && !newStructure.isEmpty()) || newStructure.size() == 1) {
			orphans = newStructure;
		} else if (newStructure.size() > 1) {
			insertDeletionsIndex = exactIndex(newStructure, where) + 1;
			orphans = newStructure.subList(insertDeletionsIndex, newStructure.size());
		}
		if (orphans != null) {
			List<Leaf> newOrphans = new ArrayList<Leaf>();
			for (Leaf orphan : orphans) {
				if (orphan.oper != Oper.DELETE) {
					orphan.parent.parent = null;
					Node clone = orphan.parent.clone();
					Leaf leafClone = new Leaf(clone, orphan.val);
					leafClone.visitor = visitor;
					clone.leaf = leafClone;
					leafClone.oper = Oper.DELETE;
					newOrphans.add(leafClone);
				} else {
					newOrphans.add(orphan);
				}
			}
			orphans.clear();
			newStructure.addAll(insertDeletionsIndex, newOrphans);
		}
	}