anchor.diff:  
   -export([start_link/3,
            prepare/2,
  -         normal_retriever/3,
  -         blocks_retriever/2,
  +         normal_retriever/4,
  +         blocks_retriever/3,
            waiting_value/2,
            waiting_chunk_command/2,
            waiting_chunks/2]).
  
positive.code: %% TODO:
  %% could this func use
  %% use a better name?
  prepare(timeout, #state{bucket=Bucket, key=Key}=State) ->
      %% start the process that will
      %% fetch the value, be it manifest
      %% or regular object
      spawn_link(?MODULE, normal_retriever, [self(), Bucket, Key]),
      {next_state, waiting_value, State}.
  
  waiting_value({object, Value}, #state{from=From}=State) ->
  
negative.code: %% @doc Retrieve the value at
  %%      Bucket, Key, whether it's a
  %%      manifest or regular object
  normal_retriever(ReplyPid, GetModule, Bucket, Key) ->
      {ok, RiakObject} = GetModule:get_object(Bucket, Key),
      riak_object(ReplyPid, RiakObject).
  
  blocks_retriever(Pid, GetModule, BlockKeys) ->
      Func = fun({ChunkSeq, ChunkName}) ->
          %% TODO:
          %% replace the chunk_bucket
          %% with a real bucket name
          {ok, Value} = GetModule:get_object(<<"filebucket">>, ChunkName),
          chunk(Pid, ChunkSeq, Value)
      end,
      lists:foreach(Func, BlockKeys).
  