reworked protocol