add update client function