synchronized update