anchor.diff:  -spec start_link(pid(), list_object_request(), term()) ->
       {ok, pid()} | {error, term()}.
   start_link(RiakcPid, ListKeysRequest, CacheKey) ->
  -    gen_fsm:start_link(?MODULE, [RiakcPid, ListKeysRequest, CacheKey], []).
  +    start_link(RiakcPid, ListKeysRequest, CacheKey, true).
  +
  +-spec start_link(pid(), list_object_request(), term(), UseCache :: boolean()) ->
  +    {ok, pid()} | {error, term()}.
  +start_link(RiakcPid, ListKeysRequest, CacheKey, UseCache) ->
  +    gen_fsm:start_link(?MODULE, [RiakcPid, ListKeysRequest, CacheKey, UseCache], []).
   
   -spec get_object_list(pid()) ->
       {ok, list_object_response()} |
  
positive.code: %%%===================================================================
  
  -spec init(list()) -> {ok, prepare, state(), 0}.
  init([RiakcPid, Request, CacheKey]) ->
      %% TODO: should we be linking or monitoring
      %% the proc that called us?
  
  
negative.code:     {stop, Reason, State}.
  
  -spec handle_keys_done(state()) -> fsm_state_return().
  handle_keys_done(State=#state{key_buffer=ListofListofKeys}) ->
      ok = maybe_write_to_cache(State, ListofListofKeys),
      NewState = prepare_state_for_first_mapred(ListofListofKeys, State),
      maybe_map_reduce(NewState).
  
  