fleshed out tokenizer