I thought of that, but I didn't think we would need it since the original design had only one. 

I like that for consistency. However, we shouldn't save on the bangged method to avoid the unnecessary extra round trip. I don't know if there's an option to throw based on the errors of the invitee without needed the `save!`. Also I noticed that if the object is persisted the updated attributes aren't saved to the DB. We should probably call save for that path, maybe after yielding we need to call save if the object is dirty.