restore minimal digest/watch implementation