anchor.diff:  state_subscribe(State, Pid) ->
       Subs = state_get_subs(State),
       NewSubs = case lists:keyfind(Pid, 1, Subs) of
  -                  false -> fd:subscribe(Pid),
  -                           [{Pid, 1} | Subs];
  +                  false -> 
  +                      fd:subscribe(Pid, {self(), state_get_role(State)}),
  +                      [{Pid, 1} | Subs];
                     Tuple ->
                         NewVal = setelement(2, Tuple, element(2, Tuple) + 1),
                         lists:keyreplace(Pid, 1, Subs, NewVal)
  
positive.code:     comm:send_local(DHTNode, {lookup_aux, ?RT:get_random_node_id(), 0, RedirectMsg}),
      State;
  
  on_init({crash, _Pid} = Msg, State) ->
      %% only in tx_tm
      on(Msg, State).
  
negative.code:                       case element(2, Tuple) of
                            1 ->
                                %% delay the actual unsubscribe for better perf.?
                                fd:unsubscribe(element(1, Tuple), {self(), state_get_role(State)}),
                                lists:keydelete(Pid, 1, Subs);
                            Num ->
                                NewVal = setelement(2, Tuple, Num - 1),
  