tokenizer handles more edge cases with hyphens and capitals