implemented separate lexer module