revert row index setter
cell width doesn't depend on row
calculate indexes based on virtual pages instead of storing an index in a row object