beginning of per-record refactoring