added UpdateMixin class and choices function