lexer actually works now