         return slice
     }
     
-    func lineSliceAlong (start: CLLocationDistance, stop: CLLocationDistance, line: [[CLLocationDegrees]]) -> [[CLLocationDegrees]] {
+    public func lineSliceAlong (start: CLLocationDistance, stop: CLLocationDistance, line: [[CLLocationDegrees]]) -> [[CLLocationDegrees]] {
         var sum = 0.0
         var slice:[[CLLocationDegrees]] = []
         

        self.ky = m * (111.13209 - 0.56605 * cos2 + 0.0012 * cos4)
    }
    
    convenience init(fromTile y: Double, z: Double, units: Factor?) {
        let n = M_PI * (1 - 2 * (y + 0.5) / pow(2, z))
        let lat = atan(0.5 * (exp(n) - exp(-n))) * 180 / M_PI
        
        self.init(lat: lat, units: units)
    }
    
    func distance (a: [CLLocationDegrees], b: [CLLocationDegrees]) -> CLLocationDistance {
        let dx = (a[0] - b[0]) * self.kx
        let dy = (a[1] - b[1]) * self.ky
        return sqrt(dx * dx + dy * dy)
    }
    
    func bearing (a: [CLLocationDegrees], b: [CLLocationDegrees]) -> CLLocationDirection {
        let dx = (b[0] - a[0]) * self.kx
        let dy = (b[1] - a[1]) * self.ky
        if (dx == 0 && dy == 0) { return 0 }

        ]
    }
    
    public func bufferBBox (bbox: [CLLocationDegrees], buffer: CLLocationDistance) -> [CLLocationDegrees] {
        let v = buffer / self.ky
        let h = buffer / self.kx
        return [
