tokenizer now handles words, symbols, and quotes