Should be checking for errors along the way.