     // Custom Property
     fileprivate var layout: PopupLayout = .center
     fileprivate var animation: PopupAnimation = .slideUp
-    fileprivate var overlayColor: UIColor = UIColor(white: 0.0, alpha: 0.4)
-    fileprivate var overlayLayer: CALayer?
+    fileprivate lazy var overlayLayer: CALayer = {
+        let layer = CALayer()
+        layer.backgroundColor = UIColor(white: 0.0, alpha: 0.4).cgColor
+        return layer
+    }()
     fileprivate var popupHeight: CGFloat = 400
     fileprivate var cellWidth: CGFloat = 300
     fileprivate var contentEdgeInsets: CGFloat = 24

        self.baseScrollView.delegate = self
        self.baseScrollView.frame = self.view.frame
        self.baseScrollView.backgroundColor = .clear
        if let overlayLayer = self.overlayLayer {
            overlayLayer.frame = self.baseScrollView.bounds
            self.view.layer.insertSublayer(overlayLayer, at: 0)
        } else {
            self.view.backgroundColor = self.overlayColor
        }
        self.view.addSubview(self.baseScrollView)
        self.baseScrollView.addSubview(self.popupCollectionView)
    }

                self.layout = value
            case .animation(let value):
                self.animation = value
            case .overlayLayer(let value):
                self.overlayLayer = value
            case .popupHeight(let value):
