client to client logic