anchor.diff:               0 -> [];
                1 -> [{update, Key, riak_dt_orset, {{add,Adds}, node()}}];
                _ -> [{update, Key, riak_dt_orset, {{add_all, Adds},node()}}]
  -         end, 
  +         end,
       case length(Rems) of
           0 -> Op;
           1 -> [{update, Key, riak_dt_orset, {{remove, hd(Rems)}, ignore}}] ++ Op;
           _ -> [{update, Key, riak_dt_orset, {{remove_all, Rems},ignore}}] ++ Op
       end.
  -        
  +
  +%% @doc decode_snapshot_read_ops : converts the pb messages for snapshot
  +%%  read transaction into read messages.
   -spec decode_snapshot_read_ops([#fpbsnapshotreadtxnop{}]) ->
                                         [{read, key(), type()}].
   decode_snapshot_read_ops(Ops) ->
  
positive.code: decode_au_txn_op(#fpbatomicupdatetxnop{counterdec=#fpbdecrementreq{key=Key, amount=Amount}}) ->
      [{update, Key, riak_dt_pncounter, {{decrement, Amount}, node()}}];
  %% Set
  decode_au_txn_op(#fpbatomicupdatetxnop{setupdate=#fpbsetupdatereq{key=Key, adds=AddElems, rems=RemElems}}) ->
       Adds = lists:map(fun(X) ->
                                binary_to_term(X)
                        end, AddElems),
  
negative.code:     ReadReqs = decode_snapshot_read_ops(Ops),
      %%TODO: change this to interactive reads
      Clock = binary_to_term(BClock),
      Response =
          case Clock of
              ignore ->
                  antidote:clocksi_execute_tx(ReadReqs);
              _ -> antidote:clocksi_execute_tx(Clock, ReadReqs)
          end,
      case Response of
          {ok, {_TxId, ReadSet, CommitTime}} ->
              Zipped = lists:zip(ReadReqs, ReadSet),
              Reply = encode_snapshot_read_response(Zipped),
  