improve token_type and lexer; now close to where lexer actually tokenizes in a semi-realistic way