Made lexer a class
Somewhat of an AST (?)
Tests!