 
 private enum AnimationItem: String {
   case oldCell, oldRightSide
-  case newCell, newCellWrapper, newRightSide
+  case newCell, newCellWrapper, newCellShadow, newRightSide
   
   static var all: [AnimationItem] {
-    return [AnimationItem.oldCell, .oldRightSide, .newCell, .newCellWrapper, .newRightSide]
+    return [AnimationItem.oldCell, .oldRightSide, .newCell, .newCellWrapper, .newRightSide, .newCellShadow]
   }
   
   var tag: Int {

    var newCellWrapperNewBounds = CGRect.zero
    newCellWrapperNewBounds.size = cellFrame.size
    let newCellWrapperNewBoundsValue = AnimationValue.bounds(newCellWrapperNewBounds)
    animate(newCellWrapperView, newValue: newCellWrapperNewBoundsValue, item: .newCellWrapper, delay: newCellAnimationDelay, index: index)
    
    // MARK: Animate cell snapshot
    let newCellSnapshotLayer = newCellSnapshotView.layer
    newCellSnapshotLayer.anchorPoint = up ? CGPoint(x: 0, y: 1) : CGPoint(x: 0, y: 0)
    newCellSnapshotLayer.position = up ? CGPoint(x: 0, y: cellFrame.height) : CGPoint(x: 0, y: 0)
    var newCellSnapshotNewBounds = CGRect.zero
    newCellSnapshotNewBounds.size = cellFrame.size
    let newCellSnapshotNewBoundsValue = AnimationValue.bounds(newCellSnapshotNewBounds)
    newCellSnapshotLayer.bounds = .zero
    animate(newCellSnapshotView, newValue: newCellSnapshotNewBoundsValue, item: .newCell, delay: newCellAnimationDelay, index: index)
    
    // MARK: Animate new right side
    let position = CGPoint(x: cellFrame.maxX + space, y: cellFrame.minY)
    let newRightSideLayer = newRightSideSnapshotView.layer
    newRightSideLayer.anchorPoint = .zero
    newRightSideLayer.position = CGPoint(x: bounds.width, y: cellFrame.minY)
    let newRightSideNewValue = AnimationValue.position(position)
    let newRightSideDelay = duration + newCellAnimationDelay
    animate(newRightSideSnapshotView, newValue: newRightSideNewValue, item: .newRightSide, duration: config.animationDuration * 2, delay: newRightSideDelay, index: index)

    let oldCellSnapshotView = UIImageView()
    
    let newCellWrapperView = UIView()
    let newCellShadowView = UIView()
    let newCellSnapshotView = UIImageView()
    let newRightSideSnapshotView = UIImageView()
    
