anchor.diff:    P = partition:map_partitions(Partitions, Nodes),
     ?infoFmt("removing node ~p~n", [OldNode]),
     #membership{
  -    partitions=P,
  +    partitions = P,
       version = vclock:increment(pid_to_list(self()), Version),
  -    node=Node,
  -    nodes=Nodes,
  -    gossip=Gossip
  +    node = Node,
  +    nodes = Nodes,
  +    gossip = Gossip
     }.
   
   int_partitions_for_node(Node, State, master) ->
     Partitions = State#membership.partitions,
  -  {Matching,_} = lists:partition(fun({N,_}) -> N == Node end, Partitions),
  -  lists:map(fun({_,P}) -> P end, Matching);
  +  Matching = lists:filter(fun ({N, _}) -> N == Node end, Partitions),
  +  lists:map(fun({_, P}) -> P end, Matching);
   
   int_partitions_for_node(Node, State, all) ->
     %%_Partitions = State#membership.partitions,
  
positive.code: handle_info(_Info, State) -> {noreply, State}.
  
  handle_call({join_node, Node}, {_, _From},
              State = #membership{ptable=Table}) ->
    ets:delete_all_objects(Table),
    error_logger:info_msg("~p is joining the cluster.~n", [node(_From)]),
    NewState = int_join_node(Node, State),
  
negative.code:             State = #membership{node = Node, nodes=Nodes,
                                  partitions=Partitions,
                                  version=Version}) ->
    Reply = [{node, Node},
             {nodes, Nodes},
             {distribution, partition:sizes(Nodes, Partitions)},
             {version, Version},
             {storage_servers, storage_manager:loaded()}],
    {reply, Reply, State}.
  
  handle_cast({state, NewState = #membership{node=_Node,nodes=Nodes}},
              State = #membership{ptable=Table}) ->
    %straight up replace our state
  