anchor.diff:  get(#state{table=Table}, Key) ->
       case osmos:read(Table, Key) of
           {ok, <<>>}  -> {error, notfound}; %% sentinal for delete
  -        {ok, Value} -> {ok, Value};
  +        {ok, Value} ->
  +            {_,_,RVal} = binary_to_term(Value),
  +            {ok, RVal};
           not_found   -> {error, notfound}
       end.
   
   %% put(state(), Key :: binary(), Val :: binary()) ->
   %%   ok | {error, Reason :: term()}
   %% key must be 160b
  -put(#state{table=Table},Key,Val) ->       
  -    osmos:write(Table, Key, Val).
  +put(#state{table=Table},{B,K},Key,Val) ->       
  +    osmos:write(Table, Key, term_to_binary({B,K,Val})).
   
   %% delete(state(), Key :: binary()) ->
   %%   ok | {error, Reason :: term()}
  
positive.code: %%    under riak_osmos_backend_root.
  -module(riak_osmos_backend).
  
  -export([start/1,stop/1,get/2,put/3,list/1,delete/2]).
  -record(state, {table}).
  
  %% @spec start(Partition :: integer()) ->
  
negative.code: -define(SELECT_CHUNK, 1000).
  
  %% list(state()) -> [Key :: binary()]
  list(#state{table=Table}) ->
      accum(Table, fun(K,_) -> {true, K} end).
  
  %% list_bucket(state(), Bucket :: atom()) -> [Key :: binary()]
  list_bucket(#state{table=Table}, Bucket) ->
      accum(Table,
            fun(_,V) ->
                    case binary_to_term(V) of
                        {Bucket, Key, _} -> {true, Key};
                        _                -> false
                    end
            end).
  
  %% @spec accum(osmos_table(), function()) -> [term()]
  %% @doc map across the rows in the osmos table, and return
  %%      terms R for which Fun returns {true, R}
  %% Explanation of osmos:select_range params:
  %%   The three functions are, in order, LessLo, LessHi, and Select.
  %%   We are trying to select *all* keys, not a limited range, thus,
  