generalize Watch/Script