improved tokenizer