     }
 
     func addPersonToGroup() -> ErrorType? {
-        if group == nil {
+
+        if let group = addressBookGroup {
+            if let person = addressBookPerson {
+                return addPeople([person], toGroup: group)
+            }
+            else {
+                return AddressBookError.FailedToGetPerson(personQuery)
+            }
+        }
+        else {
             return AddressBookError.FailedToGetGroup(groupQuery)
         }
-
-        if person == nil {
-            return AddressBookError.FailedToGetPerson(personQuery)
-        }
-
-        if let group = group, person = person, error = group.add(person) {
-            return error
-        }
-
-        if let error = addressBook.save() {
-            return error
-        }
-
-        return .None
     }
 }
 

    }

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

        super.init(registrar: registrar)
        groupQuery = .Name(group)
        personQuery = .ID(personID)
    }

    public override func executeAddressBookTask() -> ErrorType? {
