Using observer pattern to update nodes instead of watchers