 
 internal final class PDFPageView: UIScrollView {
     /// The TiledPDFView that is currently front most.
-    fileprivate var tiledPDFView: TiledView!
+    fileprivate var tiledPDFView: TiledView
     
-    fileprivate var PDFScale: CGFloat?
+    fileprivate var PDFScale: CGFloat
     
     private let ZOOM_LEVELS = 2
     private let ZOOM_STEP = 2

    private weak var pageViewDelegate: PDFPageViewDelegate?
    
    init(frame: CGRect, document: PDFDocument, pageNumber: Int, pageViewDelegate: PDFPageViewDelegate?) {
        let backgroundImage = document.getPDFPageImage(pageNumber + 1)
        guard let pageRef = document.coreDocument.page(at: pageNumber + 1) else { fatalError() }
        
        PDFPage = pageRef
        self.pageViewDelegate = pageViewDelegate
        
        // Determine the size of the PDF page.
        var pageRect = PDFPage.getBoxRect(CGPDFBox.mediaBox)
        PDFScale = min(frame.size.width/pageRect.size.width, frame.size.height/pageRect.size.height)
        pageRect.size = CGSize(width: pageRect.size.width * PDFScale!, height: pageRect.size.height * PDFScale!)
        
        guard !pageRect.isEmpty else { fatalError() }
        

        sendSubview(toBack: backgroundImageView)
        addSubview(tiledPDFView)
        
        let doubleTapOne = UITapGestureRecognizer(target: self, action:#selector(handleDoubleTap))
        doubleTapOne.numberOfTapsRequired = 2
        doubleTapOne.cancelsTouchesInView = false
        addGestureRecognizer(doubleTapOne)
        
        let singleTapOne = UITapGestureRecognizer(target: self, action:#selector(handleSingleTap))
        singleTapOne.numberOfTapsRequired = 1
        singleTapOne.cancelsTouchesInView = false
        addGestureRecognizer(singleTapOne)
