Refactoring tokenizer to handle all whitespace, so reader can focus on dispatching based on tokens