anchor.diff:                        case element(2, Tuple) of
                             1 ->
                                 %% delay the actual unsubscribe for better perf.?
  -                              fd:unsubscribe(element(1, Tuple)),
  +                              fd:unsubscribe(element(1, Tuple), {self(), state_get_role(State)}),
                                 lists:keydelete(Pid, 1, Subs);
                             Num ->
                                 NewVal = setelement(2, Tuple, Num - 1),
  
positive.code: state_subscribe(State, Pid) ->
      Subs = state_get_subs(State),
      NewSubs = case lists:keyfind(Pid, 1, Subs) of
                    false -> fd:subscribe(Pid),
                             [{Pid, 1} | Subs];
                    Tuple ->
                        NewVal = setelement(2, Tuple, element(2, Tuple) + 1),
                        lists:keyreplace(Pid, 1, Subs, NewVal)
  
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),
  