tokenizer uses string builders