 // MARK: Write in an impartial tone
 
 final fileprivate class ImpartialToneDataSource: WelcomeContainerViewControllerDataSource {
-    lazy var foregroundAnimationView: WelcomeAnimationView = {
-        return WelcomeAnimationView(staticImage: UIImage(named: "editing-welcome-scale")!)
-    }()
-
-    lazy var backgroundAnimationView: WelcomeAnimationView? = {
-        return nil
+    private let scaleBarAnimatedImageView = WelcomeAnimatedImageView(imageName: "editing-welcome/impartial-tone/bar", origin: CGPoint(x: 73, y: 50), insertBelow: false, initialAlpha: 1)
+    private let scaleArticleAnimatedImageView = WelcomeAnimatedImageView(imageName: "editing-welcome/impartial-tone/article", origin: CGPoint(x: 238, y: 61.5), initialAlpha: 1)
+    private let scaleSaturnAnimatedImageView = WelcomeAnimatedImageView(imageName: "editing-welcome/impartial-tone/saturn", origin: CGPoint(x: 40, y: 61.5), initialAlpha: 1)
+    private let plusesAnimatedImageView = WelcomeAnimatedImageView(imageName: "editing-welcome/impartial-tone/pluses")
+
+    lazy var animationView: WelcomeAnimationView = {
+        return WelcomeAnimationView(staticImageNamed: "editing-welcome/impartial-tone/stem", animatedImageViews: [scaleBarAnimatedImageView, scaleArticleAnimatedImageView, scaleSaturnAnimatedImageView, plusesAnimatedImageView], propertyAnimator: propertyAnimator)
+    }()
+
+    private lazy var propertyAnimator: UIViewPropertyAnimator = {
+        let scalePropertyAnimator = UIViewPropertyAnimator(duration: 2.6, curve: .linear)
+
+        scalePropertyAnimator.addAnimations {
+            self.scaleBarAnimatedImageView.transform = CGAffineTransform(rotationAngle: 15 * (.pi / 180))
+            let scaleSaturnTranslationY = 0 - self.scaleBarAnimatedImageView.bounds.height * self.scaleBarAnimatedImageView.transform.a
+            let scaleArticleTranslationY = self.scaleBarAnimatedImageView.bounds.height * self.scaleBarAnimatedImageView.transform.a
+            self.scaleSaturnAnimatedImageView.transform = CGAffineTransform(translationX: 0, y: scaleSaturnTranslationY)
+            self.scaleArticleAnimatedImageView.transform = CGAffineTransform(translationX: 0, y: scaleArticleTranslationY)
+        }
+
+        scalePropertyAnimator.addAnimations({
+            self.scaleBarAnimatedImageView.transform = CGAffineTransform.identity
+            self.scaleSaturnAnimatedImageView.transform = CGAffineTransform.identity
+            self.scaleArticleAnimatedImageView.transform = CGAffineTransform.identity
+        }, delayFactor: 0.7)
+
+        scalePropertyAnimator.addAnimations({
+            self.plusesAnimatedImageView.alpha = 1
+        }, delayFactor: 2.0)
+
+        return scalePropertyAnimator
     }()
 
     lazy var panelViewController: WelcomePanelViewController = {

// MARK: Set knowledge free

final fileprivate class SetKnowledgeFreeDataSource: WelcomeContainerViewControllerDataSource {
    lazy var foregroundAnimationView: WelcomeAnimationView = {
        return WelcomeAnimationView(staticImage: UIImage(named: "editing-welcome-articles")!)
    }()

    lazy var backgroundAnimationView: WelcomeAnimationView? = {
        return nil
    }()

    lazy var panelViewController: WelcomePanelViewController = {

// MARK: Be bold

final fileprivate class BeBoldDataSource: WelcomeContainerViewControllerDataSource {
    let isFirst = true

    private let editAnimatedImageView = WelcomeAnimatedImageView(imageName: "editing-welcome/be-bold/edit", origin: CGPoint(x: 59, y: 159), insertBelow: false)
    private let plusesAnimatedImageView = WelcomeAnimatedImageView(imageName: "editing-welcome/be-bold/pluses")

    lazy var animationView: WelcomeAnimationView = {
        return WelcomeAnimationView(staticImageNamed: "editing-welcome/be-bold/article", animatedImageViews: [editAnimatedImageView, plusesAnimatedImageView], propertyAnimator: propertyAnimator)
    }()

    private lazy var propertyAnimator: UIViewPropertyAnimator = {
        let editPropertyAnimator = UIViewPropertyAnimator(duration: 0.8, curve: .easeOut) {
            self.editAnimatedImageView.alpha = 1
        }

        editPropertyAnimator.addAnimations({
            self.plusesAnimatedImageView.alpha = 1
        }, delayFactor: 0.6)

        return editPropertyAnimator
    }()

    lazy var panelViewController: WelcomePanelViewController = {
