 		}
 	}
 	
-	fileprivate func cleanupAfterInteractiveStyleTransition() {
+	private func cleanupAfterInteractiveStyleTransition() {
 		self.previousStyleViewSnapshot?.removeFromSuperview()
 		self.previousStyleViewSnapshot = nil
 		self.snapshotMaskLayer = nil

	/// As the transition progresses, less and less of the snapshot view
	/// will be visible, revealing more of the real view which is styled
	/// with the new style.
	fileprivate var previousStyleViewSnapshot: UIView?
	
	/// During the interactive transition, this property contains the layer
	/// used to mask the contents of `previousStyleViewSnapshot`.
	/// When the user pans, the position and path of `snapshotMaskLayer` is
	/// adjusted to reflect the current translation of the pan recognizer.
	fileprivate var snapshotMaskLayer: CAShapeLayer?
	
	fileprivate func beginInteractiveStyleTransition(withPanRecognizer panRecognizer: PessimisticPanGestureRecognizer) {
		// We snapshot the targetView before applying the new style, and make sure
		// it's positioned on top of all the other content.
		previousStyleViewSnapshot = targetView.snapshotView(afterScreenUpdates: false)

		snapshotMaskLayer?.path = maskingPath.cgPath
	}
	
	private func endInteractiveStyleTransition(withPanRecognizer panRecognizer: PessimisticPanGestureRecognizer) {
		let velocity = panRecognizer.velocity(in: targetView)
		let translation = panRecognizer.translation(in: targetView)
		
