class SnapshotEngine extends EngineWrapper {

    @Override
    public  <A> void delete(long recid, Serializer<A> serializer) {
        locks.lock(recid);
        try{
            Object val = NOT_INIT_YET;
            for(Snapshot s:snapshots.keySet()){
                if(s.oldValues.get(recid)==null){
                    if(val == NOT_INIT_YET)
                        val = get(recid, serializer);
                    s.oldValues.put(recid,val);
                }
            }

            super.delete(recid,serializer);
        }finally{
            locks.unlock(recid);
        }
    }

    protected  SnapshotEngine(Engine engine);

}