anchor.diff:              true  -> RandViewSize + 1;
               false -> RandViewSize
           end,
  -    OtherNeighborhood =
  -        nodelist:mk_neighborhood(NewCache, nodelist:node(Neighborhood),
  -                                 get_pred_list_length(), get_succ_list_length()),
  -    NewNeighborhood = trigger_update(Neighborhood, [], OtherNeighborhood),
  +    NewNeighborhood = trigger_update(Neighborhood, [], NewCache),
       {{node_discovery}, {NewNeighborhood, RandViewSizeNew, NewCache, Churn}}.
   
   -spec trigger_action(State::state())
  
positive.code:           {ChangeReason::rm_loop:reason(), state()}.
  new_pred(State, NewPred) ->
      % if we do not want to trust notify_new_pred messages to provide an alive node, use this instead:
  %%     trigger_update(OldNeighborhood, [], nodelist:new_neighborhood(nodelist:node(OldNeighborhood), NewPred)),
      % we trust NewPred to be alive -> integrate node:
      {{unknown}, update_nodes(State, [NewPred], [], null)}.
  
  
negative.code: %%            neighborhood may contain updated node IDs though!
  -spec trigger_update(OldNeighborhood::nodelist:neighborhood(),
                       RndView::[node:node_type()],
                       OtherNodes::[node:node_type()])
          -> NewNeighborhood::nodelist:neighborhood().
  trigger_update(OldNeighborhood, MyRndView, OtherNodes) ->
      % update node ids with information from the other node's neighborhood
      OldNeighborhood2 = nodelist:update_ids(OldNeighborhood, OtherNodes),
      NewNeighborhood2 =
          nodelist:add_nodes(OldNeighborhood2, lists:append(MyRndView, OtherNodes),
                             get_pred_list_length(), get_succ_list_length()),
  
      OldView = nodelist:to_list(OldNeighborhood2),
      NewView = nodelist:to_list(NewNeighborhood2),
  