data watcher; probably shouldn't use it for this...