public virtual void write(Persistable p) { lock (wrapper) { wrapper.Data = p; if (wrapper is IMetaData) { storage.write(new FauxIndexedPersistable(p, wrapper, (IMetaData)wrapper)); } else { storage.write(new FauxIndexedPersistable(p, wrapper)); } } }