change comm to support protocol. not checked