protected virtual CouchDocument Clone() { var doc = GetType().GetConstructor(Type.EmptyTypes).Invoke(new object[0]) as CouchDocument; doc.Rev = Rev; doc.Id = Id; return doc; }