changed from iterator to full state list