better watcher for all changes