Most of lexer I think
oops