optimisation in lexer create