anchor.diff:                #state{pending=Pending0,
                        sync_joins=SyncJoins0,
                        connections=Connections0,
  -                     membership=Membership}=State) ->
  +                     membership_strategy_state=MembershipStrategyState}=State) ->
       %% Maintain disterl connection for control messages.
       _ = net_kernel:connect_node(Name),
   
  
positive.code: 
  handle_info(connections, #state{pending=Pending,
                                  sync_joins=SyncJoins0,
                                  membership=Membership,
                                  connections=Connections0}=State) ->
      %% Trigger connection.
      Connections = establish_connections(Pending,
                                          Membership,
                                          Connections0),
  
      %% Advance sync_join's if we have enough open connections to remote host.
  
negative.code:     InterpositionFuns = dict:erase(Name, InterpositionFuns0),
      {reply, ok, State#state{interposition_funs=InterpositionFuns}};
  
  handle_call({update_members, Nodes}, _From, #state{membership_strategy_state=MembershipStrategyState}=State) ->
      % lager:debug("Updating membership with: ~p", [Nodes]),
  
      %% Get the current membership.
      CurrentMembership = [N || #{name := N} <- sets:to_list(?SET:query(MembershipStrategyState))],
      % lager:debug("CurrentMembership: ~p", [CurrentMembership]),
  
      %% need to support Nodes as a list of maps or atoms
  