KVO with a block instead of a callback