update function complete