updated watcher to be able to watch value changes