update from AVAnimator master