 }
 
 public struct QuadKeyCoordinate {
-    let latitudePart: QuadKeyPart
-    let longitudePart: QuadKeyPart
-    
-    init (latitudePart: QuadKeyPart, longitudePart: QuadKeyPart) {
+    public let latitudePart: QuadKeyPart
+    public let longitudePart: QuadKeyPart
+    
+    public init (latitudePart: QuadKeyPart, longitudePart: QuadKeyPart) {
         self.latitudePart = latitudePart
         self.longitudePart = longitudePart
     }
     
-    init(quadKey: QuadKey, precision: QuadKeyPrecision) {
+    public init(quadKey: QuadKey, precision: QuadKeyPrecision) {
         var latitudePart: QuadKeyPart = 0
         var longitudePart: QuadKeyPart = 0
         var i: QuadKey = 2*QuadKey(precision) - 1

}

public extension Int64 {
    init(quadKey: QuadKey) {
        if quadKey < QuadKey.unsignedConversionConstant {
            self.init(Int64(quadKey) + QuadKey.signedConversionConstant)
        } else {

public extension QuadKeyPrecision {
    static let max: QuadKeyPrecision = 32
    
    public var deltaLatitude: QuadKeyDegrees {
        get {
            return QuadKeyDegrees.latitudeRangeLength/QuadKeyDegrees(1 << QuadKey(self))
        }
    }
    
    public var deltaLongitude: QuadKeyDegrees {
        get {
            return QuadKeyDegrees.longitudeRangeLength/QuadKeyDegrees(1 << QuadKey(self))
        }
