private void collectCategoryChanges(CourseModel courseModel,
			ArrayList<Change> changes) {
		// TODO: category names are long, and they are mapped to numeric codes
		// in facets. Something to use in description?
		for (String c : categories) {
			String code = makeIdSafe(c);
			if (courseModel.getCategory(Source.EDX, code) == null)
				changes.add(DescChange.add(DescChange.CATEGORY, Source.EDX,
						code, c, null));
		}
		HashSet<String> newIds = new HashSet<String>();
		for (String s : this.categories)
			newIds.add(makeIdSafe(s));
		for (DescRec rec : courseModel.getCategories(Source.EDX)) {
			if (!newIds.contains(rec.getId())) {
				changes.add(DescChange.delete(DescChange.CATEGORY, rec));
			} else {
				// TODO Once have descriptions, do diff.
			}
			newIds.remove(rec.getId());
		}
	}