recursive watching