             ctx.clear(bounds)
             ctx.setBlendMode(.normal)
             ctx.setFillColor(GooglyEye.plasticGrayColor().cgColor)
-            let path = CGPath(ellipseIn: bounds, transform: nil)
+            let path = CGPath(ellipseIn: CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: diameter, height: diameter)), transform: nil)
             ctx.addPath(path)
             ctx.fillPath()
-            let radius = GooglyEye.cutoutRadius(dimension: bounds.width)
+            let radius = GooglyEye.cutoutRadius(dimension: diameter)
             ctx.drawRadialGradient(baseStampGradient!,
                                    startCenter: startCenter,
-                                   startRadius: radius - (bounds.width*0.05),
+                                   startRadius: radius - (diameter*0.05),
                                    endCenter: startCenter,
-                                   endRadius: radius + (bounds.width*0.02),
+                                   endRadius: radius + (diameter*0.02),
                                    options:  .drawsAfterEndLocation)
         }
     }
     
-    class UpdatingLayer: CALayer {
+    class HeatStamp: CALayer {
         var endCenter: CGPoint = .zero
         var startCenter: CGPoint = .zero
         let edgeShadowGradient = CGGradient(colorsSpace: nil, colors: [UIColor.clear.cgColor, GooglyEye.plasticGrayColor().cgColor] as CFArray, locations: nil)

        
        override var bounds: CGRect {
            didSet {
                let diameter = GooglyEye.diameter(rectSize: bounds.size)
                startCenter = CGPoint(x: diameter/2 + ((diameter/2*0.1) * randomPercent()),
                                      y: diameter/2 + ((diameter/2*0.1) * randomPercent()))
            }

        backgroundColor = UIColor.clear
        pupilView.backgroundColor = UIColor.clear
        addSubview(pupilView)

        (layer as! PlasticBase).addSublayer(innerStamp)

        diameter = GooglyEye.diameterFromFrame(rectSize: frame.size)

        innerStamp.frame = CGRect(x: 0, y: 0, width: diameter, height: diameter)
        innerStamp.bounds = CGRect(x: -diameter/2, y: -diameter/2, width: diameter, height: diameter)
        innerStamp.update(pitchPercent: 0, rollPercent: 0)// Centered
        
        pupilView.frame = CGRect(x: (bounds.width - diameter*pupilDiameterPercentageWidth)/2, y: (bounds.height - diameter*pupilDiameterPercentageWidth)/2, width: diameter*pupilDiameterPercentageWidth, height: diameter*pupilDiameterPercentageWidth)
        pupilView.layer.setNeedsDisplay()
        let ringLayerCenterPoint = ringLayerCenterPointForManufacturingDefects()
