anchor.diff:  
   -spec key_is_common_prefix(binary(), list_object_request()) ->
       boolean().
  -%% TODO: please refactor this
   key_is_common_prefix(_Key, ?LOREQ{delimiter=undefined}) ->
       false;
   key_is_common_prefix(Key, ?LOREQ{prefix=Prefix,
                                    delimiter=Delimiter}) ->
       case Prefix of
           undefined ->
  -            case binary:match(Key, [Delimiter]) of
  +            handle_undefined_prefix(Key, Delimiter);
  +        _Prefix ->
  +            handle_prefix(Key, Prefix, Delimiter)
  +    end.
  +
  +-spec handle_undefined_prefix(binary(), binary()) -> boolean().
  +handle_undefined_prefix(Key, Delimiter) ->
  +    case binary:match(Key, [Delimiter]) of
  +        nomatch ->
  +            false;
  +        _Match ->
  +            true
  +    end.
  +
  +-spec handle_prefix(binary(), binary(), binary()) -> boolean().
  +handle_prefix(Key, Prefix, Delimiter) ->
  +    PrefixLen = byte_size(Prefix),
  +    case Key of
  +        <<Prefix:PrefixLen/binary, Rest/binary>> ->
  +            case binary:match(Rest, [Delimiter]) of
                   nomatch ->
                       false;
                   _Match ->
                       true
               end;
  -        _Prefix ->
  -            PrefixLen = byte_size(Prefix),
  -            case Key of
  -                <<Prefix:PrefixLen/binary, Rest/binary>> ->
  -                    case binary:match(Rest, [Delimiter]) of
  -                        nomatch ->
  -                            false;
  -                        _Match ->
  -                            true
  -                    end;
  -                _NoPrefix ->
  -                    false
  -            end
  +        _NoPrefix ->
  +            false
       end.
   
   -spec make_start_key(state()) -> binary().
  
positive.code:                                                common_prefixes=NewPrefixes,
                                                 reached_end_of_keyspace=ReachedEnd,
                                                 object_buffer=[]},
      case enough_results(NewStateData) of
          true ->
              Response =
              response_from_manifests_and_common_prefixes(Request,
                                                          Truncated,
                                                          {NewManis, NewPrefixes}),
              try_reply({ok, Response}, NewStateData);
          false ->
              RiakcPid = NewStateData#state.riakc_pid,
              case make_2i_request(RiakcPid, NewStateData) of
                  {NewStateData2, {ok, ReqId}} ->
                      {next_state, waiting_object_list,
                       NewStateData2#state{object_list_req_id=ReqId}};
  
negative.code:     ObjectPrefixTuple2 =
      riak_cs_list_objects_utils:filter_prefix_keys(ObjectPrefixTuple, Request),
      ReachedEnd = ObjectBufferLength < NumKeysRequested,
  
      Truncated = truncated(UserMaxKeys, ObjectPrefixTuple2),
      SlicedTaggedItems =
      riak_cs_list_objects_utils:manifests_and_prefix_slice(ObjectPrefixTuple2,
                                                            UserMaxKeys),
  