And emitting that signal could be done in CourseEnrollment.unenroll() and not rely on the view. Batch scripts might unenroll students for instance, to correct for courses that were accidentally opened. It would be nice if that refunded them in the same way.