anchor.diff:  %% @doc Initialize the zone cache.
   -spec init([]) -> {ok, #state{}}.
   init([]) ->
  -  ets:new(zones, [set, public, named_table]),
  -  ets:new(authorities, [set, public, named_table]),
  +  ok = erldns_storage:create(zones),
  +  ok = erldns_storage:create(authorities),
     {ok, #state{parsers = []}}.
   
   % ----------------------------------------------------------------------------------------------------
  
positive.code: %% for the zone.
  -spec zone_names_and_versions() -> [{dns:dname(), binary()}].
  zone_names_and_versions() ->
    ets:foldl(fun({_, Zone}, NamesAndShas) -> NamesAndShas ++ [{Zone#zone.name, Zone#zone.version}] end, [], zones).
  
  % ----------------------------------------------------------------------------------------------------
  % Write API
  
negative.code:     [] -> {error, zone_not_found};
      [_] -> {error, zone_not_found};
      [_|Labels] ->
        case erldns_storage:select(zones, Name) of
          [{Name, Zone}] -> {ok, Zone};
          _ -> find_zone_in_cache(dns:labels_to_dname(Labels))
        end
  