         userInteractionEnabled = false
     }
     
+    public override func layoutSubviews() {
+        super.layoutSubviews()
+        coreLayer.frame = bounds
+        coreLayer.path = UIBezierPath(ovalInRect: bounds).CGPath
+        ringLayer.frame = bounds
+        ringLayer.path = UIBezierPath(ovalInRect: bounds).CGPath
+        imageView.frame = bounds
+    }
+    
+    private lazy var ringLayer: CAShapeLayer = {
+        let layer = CAShapeLayer()
+        layer.lineWidth = RippleView.defaultRingWidth
+        layer.fillColor = UIColor.clearColor().CGColor
+        return layer
+    }()
+    
+    public lazy var imageView: UIImageView = {
+        let imageView = UIImageView(frame: self.bounds)
+        imageView.contentMode = .Center
+        return imageView
+    }()
+}
+
+public extension RippleView {
     override public var userInteractionEnabled: Bool {
         get { return super.userInteractionEnabled }
         set {

        }
        startAnimation()
    }
    
    public func appearAtView(view: UIView, offset: CGPoint = CGPointZero) {
        appearInView(view.superview, point: view.center + offset)
    }

        }
    }
    
    public var coreHidden: Bool {
        get { return coreLayer.hidden }
        set { coreLayer.hidden = newValue }
