 
     convenience init(image: UIImage, ratio: Double) {
         self.init(frame: .zero)
-        
-        // MARK: - View Hierarchy
-        
+        setupViewHierarchy()
+        setupLayout(with: image, ratio: ratio)
+        applyStyle()
+        imageView.image = image
+    }
+    
+    private func setupViewHierarchy() {
         sv(
             imageView,
             topCurtain,

            t.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default)
            t.setShadowImage(UIImage(), forToolbarPosition: .any)
        }
        
        imageView.image = image
    }
    
    func curtainStyle(v: UIView) {

        
        // Fit imageView to image's bounds
        imageView.Width == imageView.Height * CGFloat(imageRatio)
    }
    
    private func applyStyle() {
        backgroundColor = .black
        imageView.style { i in
            i.isUserInteractionEnabled = true
