with watch fn