work on ast; added .list() and rule methods