still understanding ast, parser, scanner