watch and digest functions