public static Change delete(final CourseRec record) {
		Change change = new Change(record.getSource(), Change.DELETE, record) {
			@Override
			public String getDescription() {
				return (record.isSelfStudy() ? "#" : "") + "Class";
			}

			@Override
			public String getTarget() {
				return "[" + record.getStatus() + "]" + record.getName();
			}

			@Override
			public String getNewValue() {
				return null;
			}

			@Override
			public String getOldValue() {
				return record.getId();
			}

			@Override
			public void apply(CourseModel model) {
				model.removeCourse(record.getSource(), record.getId());
			}
		};
		StringBuffer b = new StringBuffer("<html><b>Drop class: ");
		b.append(record.getName()).append("[").append(record.getStatus()).append("]<br/>");
		b.append("From ").append(CourseRec.idSet(record.getUniversities()));
		if (record.getLanguage() != null)
			b.append(" in ").append(record.getLanguage());
		if (record.getInstructor() != null && !record.getInstructor().isEmpty())
			b.append(" by ").append(record.getInstructor());
		b.append("</b><br/>");
		boolean first = true;
		if (!record.getOfferings().isEmpty()) {
			b.append("Sessions:");
			ArrayList<OffRec> all = new ArrayList<OffRec>(record.getOfferings());
			Collections.sort(all);
			for (OffRec or : all) {
				if (!first) 
					b.append(",");
				else
					first = false;
				if (or.getStart() != null)
					b.append(" ").append(OffRec.dformat.format(or.getStart()));
			}
			b.append("<br/>");
		}
		b.append("<div width=500px>").append(record.getDescription()).append("</div>");
		return change.setOrder(6).setToolTop(b.toString());
	}