 
     func animationsDuringTransitionFrom(viewController: UIViewController) -> [Animation] {
 
-        let animation = switchLayerAnimation()
-        let slideImageAnimation = slideImageViewAnimationAnimation()
-        let slideTextAnimation = slideTextViewAnimationAnimation()
+        let switchAnimation = switchLayerAnimation()
+        let slideImgAnimation = slideImageViewAnimation()
+        slideImgAnimation.previous = switchAnimation
+        let slideTxtAnimation = slideTextViewAnimation()
+        slideTxtAnimation.previous = switchAnimation
 
-        animation.dependencies = [slideImageAnimation, slideTextAnimation]
-
-        return [revealAnimationAnimation(), animation, scaleIconVIewAnimationAnimation()]
+        return [revealAnimation(), switchAnimation, slideImgAnimation, slideTxtAnimation, scaleIconViewAnimation()]
     }
 
-    func revealAnimationAnimation() -> Animation {
+    func revealAnimation() -> Animation {
 
         let mask = backgroundView.layer.mask as! CAShapeLayer
         let startPath = mask.path

        return Animation(layer:imageView.layer, animation:animation)
    }

    func slideTextViewAnimationAnimation() -> Animation {
        let position = CGPoint(x: textView.layer.position.x, y: CGRectGetHeight(imageView.frame) + CGRectGetHeight(textView.frame)/2)

        let animation = CABasicAnimation(keyPath: "position")

        return Animation(layer:textView.layer, animation:animation)
    }

    func scaleIconViewAnimation() -> Animation {

        let animation = CAKeyframeAnimation(keyPath: "transform.scale")
        animation.values = [0.0, 0.1, 0.2, 0.3, 0.5]
