 import Foundation
 
 public struct MMDBContinent {
-    var code: String?
-    var names: [String: String]?
+    public var code: String?
+    public var names: [String: String]?
 }
 
 public struct MMDBCountry: CustomStringConvertible {
-    var continent = MMDBContinent()
-    var isoCode = ""
-    var names = [String: String]()
+    public var continent = MMDBContinent()
+    public var isoCode = ""
+    public var names = [String: String]()
 
     init(dictionary: NSDictionary) {
         if let dict = dictionary["continent"],

    private typealias ListPtr = UnsafeMutablePointer<MMDB_entry_data_list_s>
    private typealias StringPtr = UnsafeMutablePointer<String>

    public init?(_ filename: String) {
        var cfilename = (filename as NSString).UTF8String
        var cfilenamePtr = UnsafePointer<Int8>(cfilename)


        return JSONString
    }

    public func lookup(IPString: String) -> MMDBCountry? {
        guard let s = lookupJSON(IPString) else {
            return nil
        }

