Tidy up code, add getDataAtRow() function