Changed the interface to the 'change' observer so it's simpler and allows the user to do more before, during, and after the animation.