 
   var lastZoomScale: CGFloat = -1
 
-  init(frame: CGRect, image: UIImage) {
+  // MARK: - Initialization
+
+  public init(frame: CGRect, image: UIImage) {
     super.init(frame: frame)
+
     imageView.image = image
   }
 
-  required init(coder aDecoder: NSCoder) {
+  public required init(coder aDecoder: NSCoder) {
     fatalError("init(coder:) has not been implemented")
   }
 
-  override func didMoveToSuperview() {
+  // MARK: - View lifecycle
+
+  public override func didMoveToSuperview() {
     setUpConstraints()
   }
+
+  // MARK: - Autolayout
 
   func setUpConstraints() {
     addConstraint(NSLayoutConstraint(item: scrollView, attribute: .Leading,

      layoutIfNeeded()
    }
  }
}

    layoutIfNeeded()
  }

  public func updateImageConstraints() {
    if let image = imageView.image {
      let imageWidth = image.size.width
      let imageHeight = image.size.height
