use more promises, starting attempt as getting animation to work again