add client logic