public void reconnectRejectPart() {
		for (Transition t : rejectPartBridges) {
			boolean add = false;
			if (t.getType() == Derive.class) {
				if (items.contains(t.source)) {
					add = true;
					t.source.derives.add(t);
				}
			} else { // t is a Reduce
				if (items.contains(t.target)) {
					add = true;
					t.source.reduces.add(t);
					for (Transition s : t.shifts) {
						if (!s.source.shifts.contains(s)) {
							s.source.shifts.add(s);
						}
					}
				}
			}
			if (add) {
				transitions.add(t);
			}
		}

		items.addAll(rejectPartItems);
		transitions.addAll(rejectPartTransitions);
		
		optimize(true); // some items might not be reachable anymore
	}