started on an actual lexer