public static Change setStart(final OffRec offering, final Date start) {
		Change change = new OffFieldChange<Date>(offering, "Start", start,
				offering.getStart()) {
			private String safeString(Object date) {
				if (date == null)
					return null;
				return OffRec.dformat.format(date);
			}

			@Override
			public Object getNewValue() {
				return safeString(super.getNewValue());
			}

			@Override
			public Object getOldValue() {
				return safeString(super.getOldValue());
			}

			@Override
			public void apply(CourseModel model) {
				offering.setStart(start);
				offering.setStartStr(null);
			}
		};
		StringBuffer b = new StringBuffer("<html><b>Change Start<br/>from ");
		if (offering.getStart() != null)
			b.append(OffRec.dformat.format(offering.getStart()));
		b.append("<br/>to ");
		if (start != null)
			b.append(OffRec.dformat.format(start));
		b.append("<br/>for a session of ");
		appendCourse(b, offering.getCourse());
		return change.setOrder(4).setToolTop(b.toString());
	}