step 1 of watcher. Step 2: Tail recursion