     
     func setupAnimation() {
         
-        // Setup airImageView to transform
         var rotationAndPerspectiveTransform: CATransform3D = CATransform3DIdentity
         rotationAndPerspectiveTransform.m34 = 1.0 / -600
+        
+        // Setup airImageView, rightView to transform
         self.rightView?.layer.sublayerTransform = rotationAndPerspectiveTransform
+        // AnchorPoint is the central point.
         let anchorPoint: CGPoint = CGPointMake(1, 0.5)
         let newX: CGFloat = self.airImageView!.width * anchorPoint.x
         let newY: CGFloat = self.airImageView!.height * anchorPoint.y
-        self.airImageView?.layer.position = CGPointMake(newX, newY) // Add +100
-        self.airImageView?.layer.anchorPoint = anchorPoint
+        self.airImageView!.layer.position = CGPointMake(newX, newY)
+        self.airImageView!.layer.anchorPoint = anchorPoint
         
         // Setup rightView to transform
-        var rotationAndPerspectiveTransform2: CATransform3D = CATransform3DIdentity
-        rotationAndPerspectiveTransform2.m34 = 1.0 / -600
-        self.contentView?.layer.sublayerTransform = rotationAndPerspectiveTransform2
+        self.contentView?.layer.sublayerTransform = rotationAndPerspectiveTransform
         let anchorPoint2: CGPoint = CGPointMake(1, 0.5)
         let newX2: CGFloat = self.rightView!.width * anchorPoint2.x
         let newY2: CGFloat = self.rightView!.height * anchorPoint2.y
-        self.rightView?.layer.position = CGPointMake(newX2, newY2)
-        self.rightView?.layer.anchorPoint = anchorPoint2
+        self.rightView!.layer.position = CGPointMake(newX2, newY2)
+        self.rightView!.layer.anchorPoint = anchorPoint2
         
         // Setup leftView to transform
         let leftAnchorPoint: CGPoint = CGPointMake(-3, 0.5)
         let newLeftX: CGFloat = self.leftView!.width * leftAnchorPoint.x
         let newLeftY: CGFloat = self.leftView!.height * leftAnchorPoint.y
-        self.leftView?.layer.position = CGPointMake(newLeftX, newLeftY)
-        self.leftView?.layer.anchorPoint = leftAnchorPoint
+        self.leftView!.layer.position = CGPointMake(newLeftX, newLeftY)
+        self.leftView!.layer.anchorPoint = leftAnchorPoint
         
         // Setup contentView to transform
         let anchorPoint3: CGPoint = CGPointMake(1, 0.5)
         let newX3: CGFloat = self.contentView!.width * anchorPoint3.x
         let newY3: CGFloat = self.contentView!.height * anchorPoint3.y
-        self.contentView?.layer.position = CGPointMake(newX3, newY3)
-        self.contentView?.layer.anchorPoint = anchorPoint3
+        self.contentView!.layer.position = CGPointMake(newX3, newY3)
+        self.contentView!.layer.anchorPoint = anchorPoint3
     }
     
     // Helper

        // Get thumbnailImage
        if let index = self.lastIndexInSession?[self.currentIndexSession!] {
            let lastIndexInThisSession: NSIndexPath = NSIndexPath(forRow: index, inSection: self.currentIndexSession!)
            
            let prevThumbnail: UIImage? = self.getThumbnailImageAtIndexPath(lastIndexInThisSession)
            if let prev = prevThumbnail {
                self.airImageView?.image = prevThumbnail

        self.hideAirViewOnComplete({() -> Void in
            let controller: UIViewController? = self.getViewControllerAtIndexPath(self.currentIndexPath!)?
            if controller != nil {
                
                self.bringViewControllerToTop(controller, indexPath: self.currentIndexPath!)
                
            } else if self.storyboard != nil {
                
                if self.dataSource != nil && self.dataSource?.respondsToSelector("segueForRowAtIndexPath:") != nil {
