I think `clone` better to move in `extract_record`, because it's not expectable that `extract_record` changes argument