anchor.diff:      lager:info("operation being stored: ~p", [DownstreamOp]),
       OpsDict1=orddict:append(DownstreamOp#clocksi_payload.commit_time, DownstreamOp, OpsDict),
       lager:info("materialiser_vnode: OpsDict= ~p",[OpsDict1]),
  -    true = ets:insert(OpsCache, {Key, OpsDict1}).
  +    ets:insert(OpsCache, {Key, OpsDict1}).
   
        
       
  
positive.code: 		PrunedOps=prune_ops(OpsDict, CommitTime),
  		%lager:info("Result is: ~p",[PrunedOps]),
  		ets:insert(SnapshotCache, {Key, PrunedSnapshots}),
          ets:insert(OpsCache, {Key, PrunedOps}),
          true;
  	false ->
  		ets:insert(SnapshotCache, {Key, SnapshotDict}),
  		%lager:info("NO NEED OF pruning the following snapshot cache: ~p",[SnapshotDict]),
  		false
  	end.
  	
  %% @doc Remove from OpsDict all operations that have committed before Threshold. 	
  prune_ops(OpsDict, Threshold)->
  	orddict:filter(fun(_Key, Value) -> 
  				%lager:info("This is the operation to analyse: ~n ~p", [Value]),
  
negative.code: 
  %% @doc This function takes care of reading. It is implemented here for not blocking the 
  %% vnode when the write function calls it. That is done for garbage collection. 
  -spec internal_read(term(), atom(), vectorclock:vectorclock(), atom() , atom() ) -> term().
  internal_read(Key, Type, SnapshotTime, OpsCache, SnapshotCache) ->
  	%lager:info("materialiser_vnode: operations: ~p", [Operations]),
      % get the latest snapshot for the key
  