refine the protocol utility, add utest, 0.9.140