why not reuse the function first_non_whitespace