first untested version of lexer