lots of comments and cleanups to file, not much code changing
pull in changes from other versions.  bind the object context to our observer function. always emit change when a change event happened