refactor ast nodes, fix some node types