 }
 
 class WMFWelcomeAnimationBackgroundViewController: WMFWelcomeAnimationViewController {
-    override func getAnimationView() -> WMFWelcomeAnimationView? {
-        return animationView
+    override var animationView: WMFWelcomeAnimationView? {
+        return animationViewForWelcomePageType
     }
-    lazy var animationView: WMFWelcomeAnimationView? = {
+    private lazy var animationViewForWelcomePageType: WMFWelcomeAnimationView? = {
         switch welcomePageType {
         case .intro:
             return nil

}

class WMFWelcomeAnimationForgroundViewController: WMFWelcomeAnimationViewController {
    override func getAnimationView() -> WMFWelcomeAnimationView? {
        return animationView
    }
    lazy var animationView: WMFWelcomeAnimationView? = {
        switch welcomePageType {
        case .intro:
            return WMFWelcomeIntroductionAnimationView()

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        if (!hasAlreadyAnimated) {
            guard let animationView = animationView else {
                return
            }
            animationView.beginAnimations()
