         }
     }
 
-    public var imageView: UIImageView!
-    public var scrollView: UIScrollView!
-    public var activityIndicator: UIActivityIndicatorView!
+    public let imageView = UIImageView()
+    public let scrollView = UIScrollView()
+    public let activityIndicator = UIActivityIndicatorView(style: .whiteLarge)
 
-    public var zoomDoubleTapGestureRecogniser: UITapGestureRecognizer!
+    public lazy var zoomDoubleTapGestureRecogniser: UIGestureRecognizer = {
+        let gesture = UITapGestureRecognizer(target: self, action:
+            #selector(MediaViewerInteractiveImageView.viewDoubleTapped(_:)))
+        gesture.numberOfTapsRequired = 2
+        return gesture
+    }()
 
     // MARK: private properties
 

    }

    private func setupTapGestureRecogniser() {
        zoomDoubleTapGestureRecogniser = UITapGestureRecognizer(target: self,
                                                                action: #selector(MediaViewerInteractiveImageView.viewDoubleTapped(_:))
        )
        zoomDoubleTapGestureRecogniser.numberOfTapsRequired = 2
        addGestureRecognizer(zoomDoubleTapGestureRecogniser)
    }


    }

    private func setupActivityIndicatorView() {
        activityIndicator.isHidden = true
        activityIndicator.translatesAutoresizingMaskIntoConstraints = false
        addSubview(activityIndicator)
