always rebuild protocol
WIP