might get false if there are no more rows