block: use the new _change_ API instead of _can_set_ and _set_