added some update advancement logic