         return doubleTapRecognizer
     }
     
-    func _createZoomOutRecognizer() -> UITapGestureRecognizer {
+    private func _createZoomOutRecognizer() -> UITapGestureRecognizer {
         let zoomOutRecognizer: UITapGestureRecognizer = UITapGestureRecognizer()
         zoomOutRecognizer.numberOfTapsRequired = 2
         zoomOutRecognizer.numberOfTouchesRequired = 2

        )
        
        return zoomOutRecognizer
    }
}


// MARK: Computed Properties
private extension ZoomView {
    var _doubleTapEnabled: Bool {
        get {
            return self.__doubleTapEnabled
        }
        set(newDoubleTapEnabled) {
            guard newDoubleTapEnabled != self.__doubleTapEnabled else {
                return
            }
            self.__doubleTapEnabled = newDoubleTapEnabled
            self._updateDoubleTapRecognizer()
        }
    }
    
    var _zoomOutTapEnabled: Bool {
        get {
            return self.__zoomOutTapEnabled
        }
        set(newZoomOutTapEnabled) {
            guard newZoomOutTapEnabled != self._zoomOutTapEnabled else {
                return
            }
            self.__zoomOutTapEnabled = newZoomOutTapEnabled
            self._updateZoomOutTapRecognizer()
        }
    }
}


// MARK: Add Subviews
private extension ZoomView {
    func _addSubviews() {
        self.addSubview(self._scrollView)
    }
}


// MARK: Tap Recognizers
private extension ZoomView {
    func _updateTapRecognizers() {
        self._updateDoubleTapRecognizer()
        self._updateZoomOutTapRecognizer()
    }
    
    func _updateDoubleTapRecognizer() {
        if self.doubleTapEnabled {
            self._scrollView.addGestureRecognizer(self._doubleTapRecognizer)
        } else {
            self._scrollView.removeGestureRecognizer(self._doubleTapRecognizer)
            self._doubleTapRecognizer = nil
        }
    }
    
    func _updateZoomOutTapRecognizer() {
        if self.zoomOutTapEnabled {
            self._scrollView.addGestureRecognizer(self._zoomOutTapRecognizer)
        } else {
            self._scrollView.removeGestureRecognizer(self._zoomOutTapRecognizer)
            self._zoomOutTapRecognizer = nil
        }
    }
}


        scrollView.addSubview(self._contentView)
        return scrollView
    }
}


// MARK: Computed Properties
private extension ZoomView {
    var _doubleTapEnabled: Bool {
        get {
            return self.__doubleTapEnabled
        }
        set(newDoubleTapEnabled) {
            self.__doubleTapEnabled = newDoubleTapEnabled
            self._updateDoubleTapRecognizer()
        }
    }
    
    var _zoomOutTapEnabled: Bool {
        get {
            return self.__zoomOutTapEnabled
        }
        set(newZoomOutTapEnabled) {
            self.__zoomOutTapEnabled = newZoomOutTapEnabled
            self._updateZoomOutTapRecognizer()
        }
    }
}


// MARK: Add Subviews
private extension ZoomView {
    func _addSubviews() {
        self.addSubview(self._scrollView)
    }
}


// MARK: Tap Recognizers
private extension ZoomView {
    func _updateTapRecognizers() {
        self._updateDoubleTapRecognizer()
        self._updateZoomOutTapRecognizer()
    }
    
    func _updateDoubleTapRecognizer() {
        guard (self.doubleTapEnabled == (self._doubleTapRecognizer == nil)) else {
            return
        }
        
        if self.doubleTapEnabled {
            self._doubleTapRecognizer = self._createDoubleTapRecognizer()
            self._scrollView.addGestureRecognizer(self._doubleTapRecognizer!)
        } else {
            self._scrollView.removeGestureRecognizer(self._doubleTapRecognizer!)
            self._doubleTapRecognizer = nil
        }
    }
    
    func _updateZoomOutTapRecognizer() {
        guard (self.zoomOutTapEnabled == (self._zoomOutTapRecognizer == nil)) else {
            return
        }
        
        if self.zoomOutTapEnabled {
            self._zoomOutTapRecognizer = self._createZoomOutRecognizer()
            self._scrollView.addGestureRecognizer(self._zoomOutTapRecognizer!)
        } else {
            self._scrollView.removeGestureRecognizer(self._zoomOutTapRecognizer!)
            self._zoomOutTapRecognizer = nil
        }
    }
    
    // Helpers
    private func _createDoubleTapRecognizer() -> UITapGestureRecognizer {
        let doubleTapRecognizer: UITapGestureRecognizer = UITapGestureRecognizer()
        doubleTapRecognizer.numberOfTapsRequired = 2
        doubleTapRecognizer.addTarget(
