Since rows is only used once below, there's no need to call cache()