properly record changes when watch exits