anchor.diff:  
   %% @doc Check for the availability of the metadata backend.
   -spec nebula2_db:available(pid()) -> boolean().
  -available(Pid) ->
  -    {ok, Mod} = application:get_env(nebula2, cdmi_metadata_module),
  +available(Pid) when is_pid(Pid) ->
  +    {ok, Mod} = ?GET_ENV(nebula2, cdmi_metadata_module),
       Mod:available(Pid).
       
   %% @doc Create an object.
  
positive.code:              object_oid(),   %% Oid
               map()           %% Data to store
              ) -> {'error', _} | {'ok', _}.
  create(Pid, Oid, Data) ->
      {ok, Mod} = application:get_env(nebula2, cdmi_metadata_module),
      lager:debug("Entry"),
      Response = Mod:put(Pid, Oid, Data),
      nebula2_utils:set_cache(Data),
      Response.
      
  %% @doc Delete an object
  -spec delete(pid(), object_oid()) -> ok | {error, term()}.
  delete(Pid, Oid) when is_binary(Oid) ->
      lager:debug("Entry"),
      delete(Pid, binary_to_list(Oid));
  delete(Pid, Oid) ->
      {ok, Mod} = application:get_env(nebula2, cdmi_metadata_module),
      lager:debug("Entry"),
      nebula2_utils:delete_cache(Oid),
      Mod:delete(Pid, Oid).
  
  %% @doc Get the domain maps.
  -spec nebula2_db:get_domain_maps(pid()) -> list().
  get_domain_maps(Pid) ->
      lager:debug("Entry"),
      Domain = nebula2_utils:get_domain_hash(?SYSTEM_DOMAIN_URI),
      Path = Domain ++ "/system_configuration/"++ "domain_maps",
      {ok, Mod} = application:get_env(nebula2, cdmi_metadata_module),
      case nebula2_utils:get_cache(Path) of
          {ok, Data} ->
              lager:debug("1 Cache Hit: Path: ~p", [Path]),
              D = nebula2_utils:get_value(<<"value">>, Data, <<"[]">>),
              lager:debug("Found domain maps: ~p", [D]),
              D;
          _ ->
              lager:debug("1 Cache Miss: ~p", [Path]),
              case Mod:get_domain_maps(Pid, Path) of
                  {ok, DomainMaps} ->
                      nebula2_utils:set_cache(DomainMaps),
                      D = nebula2_utils:get_value(<<"value">>, DomainMaps, <<"[]">>),
                      lager:debug("Found domain maps: ~p", [D]),
                      D;
                  _ ->
                      <<"[]">>
  
negative.code:     end.
  
  -spec marshall(map()) -> map().
  marshall(Data) when is_map(Data) ->
      ?nebMsg("Entry"),
      SearchKey = nebula2_utils:make_search_key(Data),
      marshall(Data, SearchKey).
  
  -spec marshall(map(), binary()) -> map().
  marshall(Data, SearchKey) when is_map(Data), is_binary(SearchKey) ->
      ?nebMsg("Entry"),
      maps:from_list([{<<"cdmi">>, Data}, {<<"sp">>, SearchKey}]).
  
  %% @doc Read an object
  -spec read(pid(), object_oid()) -> {ok, map()}|{error, term()}.
  read(Pid, Oid) when is_pid(Pid), is_binary(Oid) ->
      ?nebMsg("Entry"),
      {ok, Mod} = ?GET_ENV(nebula2, cdmi_metadata_module),
      ?nebFmt("Oid: ~p", [Oid]),
      case nebula2_utils:get_cache(Oid) of
          {ok, Data} ->
              ?nebFmt("Cache Hit: Oid: ~p", [Oid]),
              {ok, Data};
          _ ->
              ?nebFmt("Cache Miss: Oid: ~p", [Oid]),
              case Mod:get(Pid, Oid) of
                  {ok, Data} ->
                      nebula2_utils:set_cache(Data),
                      {ok, Data};
  