decouple benchmark from protocal