     var getABAddressPropertyKey: String {
         get {
             switch (self) {
-            case .AddressPropertyCity:
+            case .City:
                 return kABPersonAddressCityKey as! String
-            case .AddressPropertyState:
+            case .State:
                 return kABPersonAddressStateKey as! String
-            case .AddressPropertyZipCode:
+            case .ZipCode:
                 return kABPersonAddressZIPKey as! String
-            case .AddressPropertyCountry:
+            case .Country:
                 return kABPersonAddressCountryKey as! String
-            case .AddressPropertyCountryCode:
+            case .CountryCode:
                 return kABPersonAddressCountryCodeKey as! String
             default:
                 return kABPersonAddressStreetKey as! String

        :returns: Single value of the property
    */
    class func getSingleProperty<T>(#record: ABRecord, property: ABPropertyID) -> T? {
        var value: AnyObject? = ABRecordCopyValue(record, property).takeRetainedValue()
        
        return value as? T
    }
    
    /**

    init(key: String) {
        switch (key) {
            case kABPersonAddressCityKey as! String:
                self = .City
            case kABPersonAddressStateKey as! String:
                self = .State
            case kABPersonAddressZIPKey as! String:
                self = .ZipCode
            case kABPersonAddressCountryKey as! String:
                self = .Country
            case kABPersonAddressCountryCodeKey as! String:
                self = .CountryCode
            default:
                self = .Street
        }
    }
    
