works up to the point of updating and destroying