anchor.diff:  %       [Head|Split] = One,
   %       random_nodes(N-1, Split, [Head|Taken])
   %   end.
  +
  +load_state(#config{directory=Directory}) ->
  +  case file:read_file(lists:concat([Directory, "/membership.bin"])) of
  +    {ok, Binary} -> 
  +      {ok, binary_to_term(Binary)};
  +    _ -> not_found
  +  end. 
  +
  +save_state(State) ->
  +  Config = configuration:get_config(),
  +  Binary = term_to_binary(State),
  +  {ok, File} = file:open(lists:concat([Config#config.directory, "/membership.bin"]), [write, raw]),
  +  ok = file:write(File, Binary),
  +  ok = file:close(File).
   
   %% partitions is a list starting with 1 which defines a partition space.
   create_initial_state(Config) ->
  
positive.code:   end,
    membership:state(ModState#membership{config=Config}),
    reload_storage_servers(State, ModState),
    timer:apply_after(random:uniform(5000) + 5000, membership, fire_gossip, [random:seed()]).
  
  %%====================================================================
  
negative.code:   error_logger:info_msg("~p is joining the cluster.~n", [node(_From)]),
    NewState = int_join_node(Node, State),
    reload_storage_servers(State, NewState),
    save_state(NewState),
  	{reply, {ok, NewState}, NewState#membership{config=Config}};
  	
  handle_call({share, NewState}, _From, State = #membership{config=Config}) ->
  