Cleaned up Lexer