Implement observer pattern.  Update tests.