Broke out collection item observation into some separate classes.
Some refactoring.