anchor.diff:              %% we don't deal with siblings here
               %% at all
               Metadata = riakc_obj:get_metadata(Value),
  -            NextState = State#state{value_cache=RawValue};
  +            NextState = State#state{value_cache=RawValue,
  +                                    metadata_cache=Metadata};
           true ->
               Metadata = riak_moss_lfs_utils:metadata_from_manifest(DecodedValue),
  -            NextState = State#state{manifest=DecodedValue}
  +            NextState = State#state{manifest=DecodedValue,
  +                                    metadata_cache=Metadata}
       end,
  -    From ! {metadata, Metadata},
  -    {next_state, waiting_chunk_command, NextState, NextStateTimeout}.
  +    {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};
  
positive.code:                 bucket :: term(),
                  key :: term(),
                  value_cache :: binary(), 
                  manifest :: term(),
                  blocks_left :: list(),
                  get_module :: module()}).
  
negative.code: -export([init/1,
           prepare/2,
           waiting_value/2,
           waiting_metadata_request/3,
           waiting_chunk_command/2,
           waiting_chunks/2,
           handle_event/3,
  