feature: $watch attrs for updates