almost completed send_recv tutorial