This might be a little bit cleaner if `results` were a `Map<Locator, MetricData>` and the conversion of `ColumnList` to `MetricData` were done on the fly (operating on a single `ColumnList`) rather than in bulk at the end of the method.