allow calling watch with no listener