Are both of these fields necessary? I think `transformedColumnNames` could be eliminated, and `getColumnNames` could collect the values of `transformedColumnNamesByIndex`.