added lexer in progress