anchor.diff:  
   %% list of active load balancing modules available
   -define(MODULES, [lb_active_karger, lb_active_directories]).
  +
  +%% options for sending messages directly to the lb_active process
  +-define(lb, [{group_member, ?MODULE}]).
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Initialization %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  
positive.code:     OldData = old_data(Op, MyState),
      if
          OpPending orelse OldData ->
              ?TRACE("Phase1: Pending op. ~p. OldData: ~p. Won't jump or slide. Discarding op ~p~n", [OpPending, OldData, Op]),
              State;
          true ->
              MyState2 = set_pending_op(Op, MyState),
              case Op#lb_op.type of
                  jump ->
                      %% tell the succ of the light node in case of a jump
                      LightNodeSuccPid = node:pidX(Op#lb_op.light_node_succ),
                      comm:send(LightNodeSuccPid, {balance_phase2a, Op, comm:this()}, [{group_member, lb_active}]);
                  _ ->
                      %% set pending op at other node
                      LightNodePid = node:pidX(Op#lb_op.light_node),
                      comm:send(LightNodePid, {balance_phase2b, Op, comm:this()}, [{group_member, lb_active}])
              end,
              {MyState2, ModuleState}
      end;
  
  %% Received by the succ of the light node which takes the light nodes' load
  %% in case of a jump.
  on({balance_phase2a, Op, ReplyPid}, {MyState, ModuleState} = State) ->
      OpPending = op_pending(MyState),
      OldData = old_data(Op, MyState),
      if
          OpPending orelse OldData ->
              ?TRACE("Phase2b: Pending op: ~p Old data: ~p. Discarding op ~p and replying~n", [OpPending, OldData, Op]),
              comm:send(ReplyPid, {balance_failed, Op#lb_op.id}),
              State;
          true ->
              MyState2 = set_pending_op(Op, MyState),
              LightNodePid = node:pidX(Op#lb_op.light_node),
              comm:send(LightNodePid, {balance_phase2b, Op, ReplyPid}, [{group_member, lb_active}]),
              {MyState2, ModuleState}
      end;
  
  %% The light node which receives load from the heavy node and initiates the lb op.
  on({balance_phase2b, Op, ReplyPid}, {MyState, ModuleState} = State) ->
      OpPending = op_pending(MyState),
      OldData = old_data(Op, MyState),
      if
          OpPending orelse OldData ->
              ?TRACE("Phase2b: Pending op: ~p Old data: ~p. Discarding op ~p and replying~n", [OpPending, OldData, Op]),
              comm:send(ReplyPid, {balance_failed, Op#lb_op.id}),
              if Op#lb_op.type =:= jump ->
                     LightNodeSuccPid = node:pidX(Op#lb_op.light_node_succ),
                     comm:send(LightNodeSuccPid, {balance_failed, Op#lb_op.id});
                 true -> ok
              end,
              State;
          true ->
              OpId = Op#lb_op.id,
              _Pid = node:pidX(Op#lb_op.light_node),
              TargetKey = Op#lb_op.target,
              MyState2 = set_pending_op(Op, MyState),
              ?TRACE("Type: ~p Heavy: ~p Light: ~p Target: ~p~n", [Op#lb_op.type, Op#lb_op.heavy_node, Op#lb_op.light_node, TargetKey]),
              MyDHT = pid_groups:get_my(dht_node),
              ?DBG_ASSERT(_Pid =:= comm:make_global(MyDHT)),
              case Op#lb_op.type of
                  jump ->
  
negative.code:                    {gossip_reply, LightNode::lb_info:lb_info(), HeavyNode::lb_info:lb_info(), LightNodeSucc::lb_info:lb_info(),
                      Options::options(), {gossip_get_values_best_response, LoadInfo::gossip_load:load_info()}} |
                     {balance_phase1, Op::lb_op()} |
                     {balance_phase2a, Op::lb_op()} |
                     {balance_phase2b, Op::lb_op()} |
                     {balance_failed, OpId::uid:global_uid()} |
                     {balance_success, OpId::uid:global_uid()} |
                     {move, result, Tag::{jump | slide_pred | slide_succ, OpId::uid:global_uid()}, Result::ok | dht_node_move:abort_reason()} |
  