             bottomCurtain,
             toolbar
         )
-        
-        // MARK: - Layout
-        
+    }
+    
+    private func setupLayout(with image: UIImage, ratio: Double) {
         layout(
             0,
             |topCurtain|,

        
        // Fit imageView to image's bounds
        imageView.Width == imageView.Height * CGFloat(imageRatio)
        
        // MARK: - Style
        
        backgroundColor = .black
        imageView.style { i in
            i.isUserInteractionEnabled = true


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