Reorganized and added KVO