first pass at tokens and tokenizer modules; simplify lexical definition a bit more