only run watch once