It took me a minute to realize that _createNewRecord just creates an empty record. Then we retrieve and populate the record here. Perhaps we can pass the record data directly to _createNewRecord? In general, I feel this logic could take advantage of a more functional approach, in which it is clear who mutates our data structures, and where.