anchor.diff:                                lists:member(B, Buckets) and
                                     lists:member({H, P}, Servers)
                             end, OldTopkeys),
  -    {noreply, State#state{vals=Vals, topkeys=Topkeys}};
  +    Now = erlang:now(),
  +    Cache = dict:filter(fun (_K, {TS, _V}) -> timer:now_diff(Now, TS) < ?CACHE_MAXAGE end,
  +                        State#state.cache),
  +    {noreply, State#state{vals=Vals, topkeys=Topkeys, cache=Cache}};
   handle_info(Info, State) ->
       error_logger:info_msg("Just received ~p~n", [Info]),
       {noreply, State}.
  
positive.code: classify("binding_protocol") -> false;
  classify(_) -> true.
  
  %
  % API
  %
  
negative.code: -behaviour(gen_server).
  
  -define(SAMPLE_SIZE, 61).
  -define(CACHE_MAXAGE, 1000000). % max age of stuff in the cache in microsecs
  
  %% API
  -export([start_link/0,
  