done with ast modification it hink