Replace animate callback with promise

Complete callback got called twice. Replace with promise and done. Seems
to work now as expected.