updated to use the new lexer and to use a submodule to get the lexer