       newCellSnapshotView.image = UIGraphicsGetImageFromCurrentImageContext()
       UIGraphicsEndImageContext()
       newCellWrapperView.addSubview(newCellSnapshotView)
+      newCellWrapperView.clipsToBounds = true
       newCellWrapperView.isUserInteractionEnabled = false
+      containerView.addSubview(newCellShadowView)
       containerView.addSubview(newCellWrapperView)
       
       let imageViewOriginY = up ? -cellFrame.height : 0
-      let wrapperViewOriginY = up ? cellFrame.maxY : cellFrame.minY
       newCellSnapshotView.frame = CGRect(x: 0, y: imageViewOriginY, width: cellFrame.width, height: cellFrame.height)
-      newCellWrapperView.clipsToBounds = true
-      newCellWrapperView.frame = CGRect(x: minX, y: wrapperViewOriginY, width: 0, height: 0)
+      newCellWrapperView.frame = CGRect(x: minX, y: cellFrame.minY, width: 0, height: 0)
+      newCellShadowView.frame = newCellWrapperView.frame
       
       newCellWrapperView.tag = AnimationItem.newCellWrapper.tag
       newCellSnapshotView.tag = AnimationItem.newCell.tag
-      setShadow(to: newCellWrapperView)
+      newCellShadowView.tag = AnimationItem.newCellShadow.tag
+      
+      newCellShadowView.backgroundColor = backgroundColor
+      setShadow(to: newCellShadowView)
     }
     
     // MARK: Snapshot of right side of collectionView

        cell.alpha = 1
        aniview.view.removeFromSuperview()
        
      case .newRightSide where index == expandedItemIndex && aniview.animation.beginTime == anim.beginTime:
        resetViews()
        animationInProcess = false

        let position = layer.presentation()?.position ?? CGPoint(x: cellFrame.maxX, y: cellFrame.minY)
        layer.removeAllAnimations()
        layer.position = position
        let newPosition = CGPoint(x: bounds.width + space, y: cellFrame.minY)
        let newValue = AnimationValue.position(newPosition)
        animate(subview, newValue: newValue, item: AnimationItem.newRightSide, duration: duration * 1.2, delay: 0, index: lastExpandedItemIndex)
      }
