anchor.diff:      spawn_link(?MODULE, normal_retriever, [self(), GetModule, Bucket, Key]),
       {next_state, waiting_value, State}.
   
  -waiting_value({object, Value}, #state{from=From}=State) ->
  +waiting_value({object, Value}, State) ->
       %% determine if the object is a normal
       %% object, or a manifest object
       RawValue = riakc_obj:get_value(Value),
  
positive.code: -export([init/1,
           prepare/2,
           waiting_value/2,
           waiting_chunk_command/2,
           waiting_chunks/2,
           handle_event/3,
  
negative.code:             %% we don't deal with siblings here
              %% at all
              Metadata = riakc_obj:get_metadata(Value),
              NextState = State#state{value_cache=RawValue,
                                      metadata_cache=Metadata};
          true ->
              Metadata = riak_moss_lfs_utils:metadata_from_manifest(DecodedValue),
              NextState = State#state{manifest=DecodedValue,
                                      metadata_cache=Metadata}
      end,
      {next_state, waiting_metadata_request, NextState, NextStateTimeout}.
  
  waiting_metadata_request(get_metadata, _From, #state{metadata_cache=Metadata}=State) ->
      {reply, Metadata, waiting_chunk_command, State#state{metadata_cache=undefined}}.
  
  waiting_chunk_command(timeout, State) ->
      {stop, normal, State};
  