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:     State;
  
  %% failure detector events
  on({crash, Pid, _Cookie}, State) ->
      on({crash, Pid}, State);
  on({crash, Pid}, State) ->
      ?TRACE_RTM_MGMT("tx_tm_rtm:on({crash,...}) of Pid ~p~n", [Pid]),
      RTMs = state_get_RTMs(State),
  