anchor.diff:              %% io:format("starting p2p exchange. Peer: ~w, Ref: ~w~n",[Peer, Ref]),
               ?SEND_TO_GROUP_MEMBER(
                       node:pidX(Peer), gossip2,
  -                    {p2p_exch, CBModule, comm:this(), PData, get_round(CBModule, State)}),
  -            set_cycle_status(inactive, CBModule, State);
  +                    {p2p_exch, CBModule, comm:this(), PData, state_get(round, CBModule, State)}),
  +            state_set(cycle_status, inactive, CBModule, State);
           true  ->
               %% todo does this really happen??? cyclon should not have itself in the cache
               log:log(?SHOW, "[ Gossip ] Node was ME, requesting new node"),
               request_random_node(CBModule),
  -            {Peer, Data} = get_exch_data(CBModule, State),
  -            set_exch_data({undefined, Data}, CBModule, State)
  +            {Peer, Data} = state_get(exch_data, CBModule, State),
  +            state_set(exch_data, {undefined, Data}, CBModule, State)
       end,
       ok.
   
  
positive.code:                     _ = cb_call(integrate_data, [QData, current_round, OtherRound], Msg, CBModule, State);
                  start_new_round -> % self is leader
                      log:log(?SHOW, "[ Gossip ] Starting a new round p2p_exch_reply"),
                      _ = cb_call(notify_change, [new_round, get_round(CBModule, State)], Msg, CBModule, State),
                      _ = cb_call(integrate_data, [QData, old_round, OtherRound], Msg, CBModule, State),
                      comm:send(SourcePid, {new_round, CBModule, get_round(CBModule, State)});
                  enter_new_round ->
                      log:log(?SHOW, "[ Gossip ] Entering a new round p2p_exch_reply"),
                      _ = cb_call(notify_change, [new_round, get_round(CBModule, State)], Msg, CBModule, State),
                      _ = cb_call(integrate_data, [QData, current_round, OtherRound], Msg, CBModule, State);
                  propagate_new_round -> % i.e. MyRound > OtherRound
                      log:log(debug, "[ Gossip ] propagate round in p2p_exch_reply"),
                      comm:send(SourcePid, {new_round, CBModule, get_round(CBModule, State)}),
                      _ = cb_call(integrate_data, [QData, old_round, OtherRound], Msg, CBModule, State)
              end
      end,
  
negative.code: -spec init_gossip_tasks(State::state()) -> ok.
  init_gossip_tasks(State) ->
      Fun = fun (CBModule) ->
              state_set(cb_status, uninit, CBModule, State),
              InitDelay = CBModule:init_delay(),
              comm:send_local_after(InitDelay, self(), {init_gossip_task, CBModule})
            end,
  