     /**
         :returns: Current authorization status for address book
     */
-    public class func getAuthorizationStatus() -> ABAuthorizationStatus {
-        return ABAddressBookGetAuthorizationStatus()
-    }
-    
+    public class func getAuthorizationStatus() -> AddressBookAuthorizationStatus {
+        switch (ABAddressBookGetAuthorizationStatus()) {
+            case ABAuthorizationStatus.Authorized:
+                return .Authorized
+            case ABAuthorizationStatus.Denied:
+                return .Denied
+            case ABAuthorizationStatus.Restricted:
+                return .Restricted
+            default:
+                return .Unknown
+        }
+    }
 }
+
+public enum AddressBookAuthorizationStatus {
+    case Authorized
+    case Denied
+    case Restricted
+    case Unknown
+}

    /// Returns all contacts as an array of AddressBookPerson instances
    public var allContacts: [AddressBookPerson]? {
        get {
            return AddressBookPerson.convertToSelf(ABAddressBookCopyArrayOfAllPeople(self.addressBook).takeRetainedValue())
        }
    }
    
    /**

                        peopleArray = AddressBookPerson.convertToSelf(people)
                        
                        if (filter != nil) {
                            peopleArray = peopleArray?.filter(filter!)
                        }
                        
                        if (sort != nil) {
