Added lexer to its own file