                     appIconImageView.removeFromSuperview()
                     appCollectionSnapshotView.removeFromSuperview()
                     wallpaperSnapshotView.removeFromSuperview()
+                    appCollectionContainerView.removeFromSuperview()
                     transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
             })
         }

        containerView.addSubview(wallpaperSnapshotView)
        wallpaperSnapshotView.frame = containerView.bounds
        
        let appCollectionSnapshotView = UIImageView()
        appCollectionSnapshotView.image = snapshotImageForZoomingAppIcons(from: springBoardViewController)
        // Move the anchor point to the center of the app that is being launched so that
        // the zoom animation will look like we are going into that app
        appCollectionSnapshotView.layer.anchorPoint = CGPoint(x: appIconFrame.midX / containerView.bounds.maxX,
                                                              y: appIconFrame.midY / containerView.bounds.maxY)
        appCollectionSnapshotView.frame = containerView.bounds
        containerView.addSubview(appCollectionSnapshotView)

        let appInitialViewSnapshot = appInitialView.snapshotView(afterScreenUpdates: true)!
        
        // TODO: can this be moved to the end of the animation?

    var startingCornerRadius = CGFloat(14)
    var otherAppZoomScale = CGFloat(5)
    var wallpaperZoomScale = CGFloat(1.5)
    var duration = TimeInterval(0.3)
    
    init(appIconButton: UIButton, springBoardViewController: SpringBoardViewController, reversed: Bool) {
        self.appIconButton = appIconButton
