add watcherCallback