Move animation out to delegate