changes such as ClientProtocol, convert function