refactor '*Record'