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

    /**
        :returns: Current authorization status for address book
    */
    public class func getAuthorizationStatus() -> ABAuthorizationStatus {
        return ABAddressBookGetAuthorizationStatus()
    }
    
}

    /// Returns all contacts as an array of AddressBookPerson instances
    public var allContacts: [AddressBookPerson]? {
        get {
            return AddressBookPerson.convertToSelf(ABAddressBookCopyArrayOfAllPeople(self.addressBook)?.takeRetainedValue())
        }
    }
    
    public func retrieveAllContactsInQueue(
        queue: dispatch_queue_t,
        completion: (([AddressBookPerson]?, CFError?) -> Void)?)
    {
        self.retrieveAllContactsInQueue(queue,
            sort: nil,
            filter: nil,
            completion: completion)
    }
    
    public func retrieveAllContactsInQueue(
        queue: dispatch_queue_t,
        sort: ((AddressBookPerson, AddressBookPerson) -> Bool)?,
        completion: (([AddressBookPerson]?, CFError?) -> Void)?)
    {
        self.retrieveAllContactsInQueue(queue,
            sort: sort,
            filter: nil,
            completion: completion)
    }
    
    public func retrieveAllContactsInQueue(
        queue: dispatch_queue_t,
        filter: ((AddressBookPerson) -> Bool)?,
        completion: (([AddressBookPerson]?, CFError?) -> Void)?)
    {
        self.retrieveAllContactsInQueue(queue,
            sort: nil,
            filter: filter,
            completion: completion)
    }
    
    /**
