Is it necessary to cache the selected users every time the selection changes? I think it should be sufficient to just get the selection once when the save button is clicked, and otherwise retain the original selection. This would remove a few places where we currently need to re-cache.