It seems to me that this is a problem with the Model API. I think it is better to play on the safe side (like you are doing) until the API is improved. IMHO I would prefer more symetry (enroll()/unrenroll), or unification (change_enrollment).