new block based kvo