anchor.diff:  
   filter_ops(Ops) ->
       %% TODO: Filter out only downstream update operations from log
  -    [ Op || { _Key, Op } <- Ops ].
  +    [Op || { _Key, Op} <- Ops].
  
positive.code: handle_command({read, Key, Type, Snapshot_time}, _Sender,
                 State = #state{cache= Cache}) ->
      Operations = ets:lookup(Cache, Key),
      %% Operations are in the order which it is inserted
      lager:info(" Operations ~p", Operations),
      ListofOps = filter_ops(Operations),
      {ok, Snapshot} = clocksi_materializer:get_snapshot(
                         Type, Snapshot_time, ListofOps),
      lager:info("Snapshot ~p", Snapshot),
      %% TODO: Store Snapshots in Cache
      {reply, {ok, Snapshot}, State};
  
  handle_command({update, Key, DownstreamOp}, _Sender,
                 State = #state{cache = Cache})->
      %%LogId = log_utilities:get_logid_from_key(Key),
      %%TODO: Remove unnecessary information from op_payload in log_Record
      LogRecord = #log_record{tx_id = DownstreamOp#clocksi_payload.txid,
                              op_type=downstreamop, op_payload = DownstreamOp},
      case floppy_rep_vnode:append(
             Key, DownstreamOp#clocksi_payload.type, LogRecord) of
          {ok, _} ->
  
negative.code:       NewPref, {read, Key, Type, Snapshot_time}, materializer_vnode_master).
  
  %%@doc write downstream operation to persistant log and cache it for future read
  -spec update(key(), #clocksi_payload{}) -> ok | {error, atom()}.
  update(Key, DownstreamOp) ->
      DocIdx = riak_core_util:chash_key({?BUCKET, term_to_binary(Key)}),
      Preflist = riak_core_apl:get_primary_apl(DocIdx, 1, materializer),
      [{NewPref,_}] = Preflist,
      riak_core_vnode_master:sync_command(NewPref, {update, Key, DownstreamOp},
  