public synchronized void remove() {
   if (evaluatedWatch != null) {
     evaluatedWatch.remove();
   } else {
     w.remove();
   }
 }