usage changes and adding lexer