implemented update watchers functionslity