 	/// then generates a new snapshot of the `presentingViewController`'s view,
 	/// and then replaces the existing snapshot with it
 	private func updateSnapshotView() {
-		guard
-			let containerView = containerView,
-			let presentingViewSnapshotView = presentingViewSnapshotView,
-			cachedContainerWidth != containerView.bounds.width
-		else {
+		guard let presentingViewSnapshotView = presentingViewSnapshotView else {
 			return
 		}
 		
-		cachedContainerWidth = containerView.bounds.width
-		aspectRatioConstraint?.isActive = false
-		let aspectRatio = containerView.bounds.width / containerView.bounds.height
-		aspectRatioConstraint = presentingViewSnapshotView.widthAnchor.constraint(equalTo: presentingViewSnapshotView.heightAnchor, multiplier: aspectRatio)
-		aspectRatioConstraint?.isActive = true
+		updateSnapshotViewAspectRatio()
 		
 		if let snapshotView = presentingViewController.view.snapshotView(afterScreenUpdates: true) {
 			presentingViewSnapshotView.subviews.forEach { $0.removeFromSuperview() }

			animations: {
				containerView.frame.origin.y -= newHeight - currentHeight
			}, completion: { [weak self] _ in
				self?.presentingViewController.view.alpha = 1
				containerView.frame = CGRect(x: 0, y: statusBarHeight, width: containerView.frame.width, height: newHeight)
				self?.presentedViewController.view.mask = nil
				self?.presentedViewController.view.round(corners: [.topLeft, .topRight], withRadius: 8)
			}
		)
		
		updateSnapshotView()
	}
	
	/// Method to update the snapshot view showing a representation of the

		presentingViewController.view.alpha = 0
		
		let fullHeight = containerView.window!.frame.size.height
		let statusBarHeight: CGFloat = {
			let tempHeight = UIApplication.shared.statusBarFrame.height
			if tempHeight >= 20 {
				return tempHeight - 20
			} else {
				return tempHeight
			}
		}()
		
		let currentHeight = containerView.frame.height
		let newHeight = fullHeight - statusBarHeight
