Explicitly track column index (range index is in byte offsets).
Pass render function as an argument.