anchor.diff:  
   %% Check whether this header is better than previous best
   new_header(Uri, Header, AgreedHeight, Hash) ->
  -    gen_server:call(?MODULE, {new_header, Uri, Header, AgreedHeight, Hash}).
  +    gen_server:call(?MODULE, {new_header, self(), Uri, Header, AgreedHeight, Hash}).
   
   update_hash_pool(Hashes) ->
     gen_server:call(?MODULE, {update_hash_pool, Hashes}).
  
positive.code: handle_cast({delete_from_pool, Uri}, State) ->
      %% This Uri misbehaved, even if we got a new Ping in-between asking for deletion and
      %% actual deletion, we remove it. A new ping will arrive in the future.
      {noreply, State#state{sync_pool = lists:keydelete(Uri, #sync_peer.uri, State#state.sync_pool)}}; 
  handle_cast(_, State) ->
      {noreply, State}.
  
negative.code:                                          from = AgreedHeight, 
                                           to = Height, 
                                           hash = AgreedHash, 
                                           uri = Uri,
                                           pid = Pid}, 
                                State#state.sync_pool),
      case IsNew of
          true -> erlang:monitor(process, Pid);
          false -> ok
      end,
      {reply, IsNew, State#state{sync_pool = NewPool}};
  handle_call({update_hash_pool, Hashes}, _From, State) ->
      HashPool = merge(State#state.hash_pool, Hashes),
  