client side update