                 let lastCardOverlayView = dataSource.koloda(self, viewForCardOverlayAtIndex: UInt(shownCardsCount - 1))
                 
                 var lastCardFrame = frameForCardAtIndex(UInt(visibleCards.count))
-                let topCardFrame = frameForCardAtIndex(0)
-                let lastCardView = DraggableCardView(frame: topCardFrame)
-                
-                let transform = CATransform3DIdentity
-                let widthScale = lastCardFrame.width / topCardFrame.width
-                let heightScale = lastCardFrame.height / topCardFrame.height
-                lastCardView.layer.transform = CATransform3DScale(transform,  widthScale, heightScale, 1.0)
-                
-                lastCardFrame.size = topCardFrame.size
-                lastCardView.frame = lastCardFrame
+                let cardParameters = backgroundCardParametersForFrame(lastCardFrame)
+
+                let lastCardView = DraggableCardView(frame: cardParameters.frame)
+                
+                
+                let scale = cardParameters.scale
+                lastCardView.layer.transform = CATransform3DScale(CATransform3DIdentity, scale.width, scale.height, 1.0)
+                
                 lastCardView.hidden = true
                 lastCardView.userInteractionEnabled = true
                 

    }
    
    //MARK: Actions
    
    private func swipedAction(direction: SwipeResultDirection) {
        animating = true
        visibleCards.removeAtIndex(0)
        
        currentCardNumber++
        let shownCardsCount = currentCardNumber + countOfVisibleCards

                
                for index in 0..<countOfNeededCards {
                    let nextCardContentView = dataSource.koloda(self, viewForCardAtIndex: UInt(index+currentCardNumber))
                    let nextCardView = DraggableCardView(frame: frameForTopCard())
                    
                    nextCardView.delegate = self
                    if shouldTransparentize {
