anchor.diff:               slide_op:get_phase(SlideOp) =:= wait_for_node_update of
           true ->
               rm_loop:unsubscribe(self(), fun rm_loop:subscribe_node_change_filter/2,
  -                                fun send_node_change/3),
  +                                fun dht_node_move:rm_send_node_change/3),
               TargetId = slide_op:get_target_id(SlideOp),
               case node:id(NewNode) =:= TargetId of
                   true ->
  
positive.code: 
  -export([process_move_msg/2,
           can_slide_succ/3, can_slide_pred/3,
           rm_pred_changed/2, rm_notify_new_pred/3,
           make_slide/5,
           make_slide_leave/1, make_jump/4,
           check_config/0]).
  
negative.code:             dht_node_state:set_slide(
                State, succ, slide_op:set_phase(NewSlideOp, wait_for_node_update));
          _ ->
              % note: subscribe with fully qualified function named, i.e. module:fun/arity, to allow successful unsubscribes
              rm_loop:subscribe(self(), fun rm_loop:subscribe_node_change_filter/2,
                                fun dht_node_move:rm_send_node_change/3),
              rm_loop:update_id(TargetId),
              dht_node_state:set_slide(
                State, succ, slide_op:set_phase(NewSlideOp, wait_for_node_update))
  