KVO Implementation with blocks