change how to build ast structure