new ast and some parser changes