     
     let max = 8
     
-    init(boundingBox box: MKMapRect) {
+    init(boundingBox box: Bounds) {
         boundingBox = box
     }
     

    
}

// bounds rect
extension MKMapRect {
    
    var minX: Double {
        return origin.x
    }
    
    var minY: Double {
        return origin.y
    }
    
    var midX: Double {
        return maxX / 2
    }
    
    var midY: Double {
        return maxY / 2
    }
    
    var maxX: Double {
        return origin.x + size.width
    }
    
    var maxY: Double {
        return origin.y + size.height
    }
    
    init(_ mapRect: MKMapRect) {
        let topLeft = MKCoordinateForMapPoint(mapRect.origin)
        let bottomRight = MKCoordinateForMapPoint(MKMapPointMake(MKMapRectGetMaxX(mapRect), MKMapRectGetMaxY(mapRect)))
        self.init(origin: MKMapPoint(x: bottomRight.latitude, y: topLeft.longitude), size: MKMapSize(width: topLeft.latitude, height: bottomRight.longitude))
    }
    
    func intersects(_ mapRect: MKMapRect) -> Bool {
        return MKMapRectIntersectsRect(self, mapRect)
    }
    
    func contains(_ coordinate: CLLocationCoordinate2D) -> Bool {
        return MKMapRectContainsPoint(self, MKMapPointMake(coordinate.latitude, coordinate.longitude))
    }
    
}

    
    private(set) var annotations = [MKAnnotation]()
    
    let boundingBox: Bounds
    
    var siblings: Siblings?
    
