anchor.diff:      %% TableName = pdb:new(?MODULE, [set, private]),
       LAcceptor = get_my(Role, acceptor),
       GLLearner = comm:make_global(get_my(Role, learner)),
  -
       %% start getting rtms and maintain them.
       case Role of
           tx_tm ->
               comm:send_local(pid_groups:get_my(dht_node),
                               {get_node_details, comm:this(), [node]}),
               State = {_RTMs = [], TableName, Role, LAcceptor, GLLearner, msg_queue:new()},
  +            %% subscribe to id changes
  +            rm_loop:subscribe(self(), ?MODULE,
  +                              fun rm_loop:subscribe_dneighbor_change_filter/2,
  +                              fun ?MODULE:rm_send_update/4, inf),
               gen_component:change_handler(State, on_init);
           _ -> {_RTMs = [], TableName, Role, LAcceptor, GLLearner}
       end.
  
positive.code: commit(TM, Client, ClientsID, TLog) ->
      Msg = {tx_tm_rtm_commit, Client, ClientsID, TLog},
      comm:send_local(TM, Msg).
  
  %% be startable via supervisor, use gen_component
  -spec start_link(pid_groups:groupname(), any()) -> {ok, pid()}.
  
negative.code: 
  rtm_entry_new(Key, RTMPid, Nth, AccPid) -> {Key, RTMPid, Nth, AccPid}.
  get_rtmkey(RTMEntry) -> element(1, RTMEntry).
  set_rtmkey(RTMEntry, Val) -> setelement(1, RTMEntry, Val).
  get_rtmpid(RTMEntry) -> element(2, RTMEntry).
  get_nth(RTMEntry)    -> element(3, RTMEntry).
  get_accpid(RTMEntry) -> element(4, RTMEntry).
  