protocol in client