 
       var postalAddress = [String: AnyObject]()
 
-      let cNPostalAddress = cNContactPostalAddress.value as! CNPostalAddress
-
-      postalAddress["identifier"]  = cNContactPostalAddress.identifier
-      postalAddress["label"]       = CNLabeledValue.localizedStringForLabel( cNContactPostalAddress.label ?? "" )
-      postalAddress["street"]      = cNPostalAddress.valueForKey("street") as! String
-      postalAddress["city"]        = cNPostalAddress.valueForKey("city") as! String
-      postalAddress["state"]       = cNPostalAddress.valueForKey("state") as! String
-      postalAddress["postalCode"]  = cNPostalAddress.valueForKey("postalCode") as! String
-      postalAddress["country"]     = cNPostalAddress.valueForKey("country") as! String
-      postalAddress["stringValue"] = CNPostalAddressFormatter.stringFromPostalAddress(cNPostalAddress, style: .MailingAddress)
+      let cNPostalAddress = cNContactPostalAddress.value 
+
+      postalAddress["identifier"]  = cNContactPostalAddress.identifier as AnyObject?
+      postalAddress["label"]       = CNLabeledValue.localizedString( forLabel: cNContactPostalAddress.label ?? "" ) as AnyObject?
+      postalAddress["street"]      = cNPostalAddress.value(forKey: "street") as! String as AnyObject?
+      postalAddress["city"]        = cNPostalAddress.value(forKey: "city") as! String as AnyObject?
+      postalAddress["state"]       = cNPostalAddress.value(forKey: "state") as! String as AnyObject?
+      postalAddress["postalCode"]  = cNPostalAddress.value(forKey: "postalCode") as! String as AnyObject?
+      postalAddress["country"]     = cNPostalAddress.value(forKey: "country") as! String as AnyObject?
+      postalAddress["stringValue"] = CNPostalAddressFormatter.string(from: cNPostalAddress, style: .mailingAddress) as AnyObject?
 
       // FIXME: For some reason, it throws an error with isoCountryCode.
       // postalAddress["isoCountryCode"] = cNPostalAddress.valueForKey("isoCountryCode") as! String
 
-      postalAddresses.append( postalAddress )
+      postalAddresses.append( postalAddress as AnyObject )
     }
 
     return postalAddresses

    }
  }
  
  @objc func addContact(contactData: NSDictionary, callback: (NSObject) -> () ) -> Void {
    
    let contactStore   = CNContactStore()
    let mutableContact = CNMutableContact()


      var cNContacts = [CNContact]()

      let fetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch as [CNKeyDescriptor])

      fetchRequest.sortOrder = CNContactSortOrder.givenName

      try contactStore.enumerateContacts(with: fetchRequest) { (cNContact, pointer) -> Void in

        if !cNContact.givenName.isEmpty {  // Ignore any Contacts that don't have a Given Name. Garbage Contact.

