improving ast