anchor.diff:      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),
  
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:     comm:send_local(DHTNode, {lookup_aux, ?RT:get_random_node_id(), 0, RedirectMsg}),
      State;
  
  on_init({tx_tm_rtm_tid_isdone, _TxId} = Msg, State) ->
      comm:send_local(self(), Msg),
      State;
  
  on_init({crash, Pid, _Cookie}, State) ->
      on_init({crash, Pid}, State);
  on_init({crash, _Pid} = Msg, State) ->
      %% only in tx_tm
      on(Msg, State).
  