udpate async