add protocol and client