Split Tokenizer out to a separate module