         return .None
     }
 
-    func allGroups() -> [AddressBookGroup] {
+    func groups() -> [AddressBookGroup] {
         if let source = source() {
             return addressBook.groupsInSource(source)
         }

        }
    }

    func allPeople() -> [AddressBookPerson] {
        if let source = source() {
            return addressBook.peopleInSource(source)
        }
        else {

    }
}

// MARK: - Person Actions

public class AddressBookMapPeople<T>: AddressBookGetResource {

    let transform: (AddressBookPerson) -> T?
    var results = Array<T>()

    public init(registrar: AddressBookPermissionRegistrar?, inGroupNamed groupName: String? = .None, transform: (AddressBookPerson) -> T?) {
        self.transform = transform
        super.init(registrar: registrar)
        if let groupName = groupName {
            groupQuery = .Name(groupName)
            addCondition(AddressBookGroupExistsCondition(registrar: registrar, name: groupName))
        }
    }

    override func executeAddressBookTask() -> ErrorType? {
        if let error = super.executeAddressBookTask() {
            return error
        }
        return mapPeople()
    }

    func mapPeople() -> ErrorType? {
        results = people().flatMap { flatMap(self.transform($0), { [$0] }) ?? [] }
        return .None
    }
}











