implement sequential updates