Make KVO safer and make sure the observer is definitely unhooked before the object is destroyed. Also make sure to pass through any unhandled KVO messages as that is the expected behaviour of NSObjects
Remove the debug logging