     
     fileprivate func _contains(_ other: Shape.Component, hint: Set<Int> = []) -> Bool {
         
-        if !self.bigBound.contains(other.boundary) {
+        if !self.boundary.contains(other.boundary) {
             return false
         }
         if abs(self.area) < abs(other.area) {

    }
    fileprivate func intersection(_ other: ShapeRegion.Solid) -> [ShapeRegion.Solid] {
        
        if !self.bigBound.isIntersect(other.bigBound) {
            return []
        }
        

        return solids.reduce(0) { $0 + $1.area }
    }
    
    public var shape: Shape {
        let _path = Shape(solids.flatMap { $0.components.enumerated().map { $1.area.sign == ($0 == 0 ? .plus : .minus) ? $1 : $1.reversed() } })
        _path.cacheTable[ShapeCacheNonZeroRegionKey] = self
