             return
         }
         
+        setupPresentedViewKVO()
+        
         if let animated = presentedViewController.transitionCoordinator?.isAnimated {
             presentedViewController.beginAppearanceTransition(true, animated: animated)
             presentingViewController.beginAppearanceTransition(false, animated: animated)

        presentedViewController.view.frame = offscreenFrame
        presentedViewController.view.transform = .identity
        
        presentedViewController.view.removeObserver(self, forKeyPath: "frame")
        presentedViewController.view.removeObserver(self, forKeyPath: "transform")
		
		dismissCompletion?(completed)
	}

	private var cachedContainerWidth: CGFloat = 0
    private var snapshotViewHeightConstraint: NSLayoutConstraint?
	private var snapshotViewAspectRatioConstraint: NSLayoutConstraint?
    
    private var presentedViewFrameObserver: NSKeyValueObservation?
    private var presentedViewTransformObserver: NSKeyValueObservation?
	
	private var presentAnimation: (() -> ())? = nil
	private var presentCompletion: ((Bool) -> ())? = nil
