made first_row correctly check for length and return an Option