First test for tokenizer
generate tokens
Split generic rules into their own trait
Generified rules