I think that makes sense, if the columnNames are intended to be an ordered random-access list of names. I made a first pass on this change: https://github.com/blicksky/griddle/commit/2adca5f7789e781a89f8419b2d7f5c44bb89c066. I'd appreciate feedback before submitting another pull request.