update client-side