implement watching