only animate as necessary