porting over some update execution logic