Tossed out the old lexer to make a more robust version