use per-record versioning