bindings are triggered only if value changes