         let fmaxRate = CGFloat(maxRate)
         let allWidth = (starSize.width*fmaxRate) + (spacing*fmaxRate)
         let allStarWidth = starSize.width*fmaxRate
-        let allSize = CGSize(
+        _allSize = CGSize(
             width: allWidth,
             height: starSize.height
         )

import UIKit

public class RateCoreGraphicView: UIView {
    private var _value: RatePoint = .zero {
        didSet {
            setNeedsDisplay()
        }
    }
    @IBInspectable public var fullImage: UIImage?
    @IBInspectable public var zeroImage: UIImage?
    @IBInspectable public var spacing: CGFloat = 0

        if _value < maxRate {
            if (needsClip) {
                context.saveGState();
                context.clip(to: CGRect(x: boundaryX, y: 0, width: _allSize.width - spacing - boundaryX, height: starSize.height))
            }
            for i in (boundaryIndex..<maxRate) {
                zeroImage.draw(at: CGPoint(x: xOrigin(atIndex: i), y: 0))
