update client logic