<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>Classes/AddPersonView.xib</filename>
    </added>
    <added>
      <filename>Classes/AddPersonViewController.h</filename>
    </added>
    <added>
      <filename>Classes/AddPersonViewController.m</filename>
    </added>
    <added>
      <filename>Classes/DogViewController.xib</filename>
    </added>
    <added>
      <filename>Classes/EditPerson.h</filename>
    </added>
    <added>
      <filename>Classes/EditPerson.m</filename>
    </added>
    <added>
      <filename>Classes/EditPersonController.h</filename>
    </added>
    <added>
      <filename>Classes/EditPersonController.m</filename>
    </added>
    <added>
      <filename>Classes/EditPersonController.xib</filename>
    </added>
    <added>
      <filename>Classes/PeopleViewController.h</filename>
    </added>
    <added>
      <filename>Classes/PeopleViewController.m</filename>
    </added>
    <added>
      <filename>Classes/Person.h</filename>
    </added>
    <added>
      <filename>Classes/Person.m</filename>
    </added>
    <added>
      <filename>Classes/ViewPersonController.h</filename>
    </added>
    <added>
      <filename>Classes/ViewPersonController.m</filename>
    </added>
    <added>
      <filename>sample_rails_app/app/controllers/people_controller.rb</filename>
    </added>
    <added>
      <filename>sample_rails_app/app/helpers/people_helper.rb</filename>
    </added>
    <added>
      <filename>sample_rails_app/app/models/person.rb</filename>
    </added>
    <added>
      <filename>sample_rails_app/app/views/layouts/owners.html.erb</filename>
    </added>
    <added>
      <filename>sample_rails_app/app/views/people/edit.html.erb</filename>
    </added>
    <added>
      <filename>sample_rails_app/app/views/people/index.html.erb</filename>
    </added>
    <added>
      <filename>sample_rails_app/app/views/people/new.html.erb</filename>
    </added>
    <added>
      <filename>sample_rails_app/app/views/people/show.html.erb</filename>
    </added>
    <added>
      <filename>sample_rails_app/db/migrate/20090126163916_create_people.rb</filename>
    </added>
    <added>
      <filename>sample_rails_app/db/migrate/20090126164129_add_people_to_dogs.rb</filename>
    </added>
    <added>
      <filename>sample_rails_app/test/fixtures/owners.yml</filename>
    </added>
    <added>
      <filename>sample_rails_app/test/functional/owners_controller_test.rb</filename>
    </added>
    <added>
      <filename>sample_rails_app/test/unit/owner_test.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -8,13 +8,15 @@
 
 #import &lt;UIKit/UIKit.h&gt;
 
-
+@class Dog;
 @interface AddDogViewController : UIViewController &lt;UITextFieldDelegate&gt; {
 
 	IBOutlet UITextField *textField;
+	Dog *newDog;
 	
 }
 
 @property (nonatomic, retain) UITextField *textField;
+@property (nonatomic, retain) Dog *newDog;
 
 @end</diff>
      <filename>Classes/AddDogViewController.h</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@
 
 @implementation AddDogViewController
 
-@synthesize textField;
+@synthesize textField , newDog;
 
 #pragma mark UIViewController methods
 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
@@ -27,17 +27,18 @@
 
 #pragma mark UITextFieldDelegate methods
 - (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
-	Dog *newDog = [[Dog alloc] init];
 	newDog.name = textField.text;
+	
+	// explicitly create a new dog on the server
 	[newDog create];
-	[newDog release];
-    [self.navigationController popViewControllerAnimated:YES];
+	[self.navigationController popViewControllerAnimated:YES];
 	return YES;
 }
 
 #pragma mark cleanup
 
 - (void)dealloc {
+	[newDog release];
 	[textField release];
 	[super dealloc];
 }</diff>
      <filename>Classes/AddDogViewController.m</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,7 @@
 	
 	NSString *name;
   NSString *dogId;
+	NSString *personId;
   NSDate   * updatedAt;
   NSDate   * createdAt;
   
@@ -21,4 +22,5 @@
 @property (nonatomic , retain) NSDate * updatedAt;
 @property (nonatomic , retain) NSString  *dogId;
 @property (nonatomic , retain) NSString *name;
+@property (nonatomic , retain) NSString *personId;
 @end</diff>
      <filename>Classes/Dog.h</filename>
    </modified>
    <modified>
      <diff>@@ -7,11 +7,19 @@
 //
 
 #import &quot;Dog.h&quot;
+#import &quot;ObjectiveResource.h&quot;
+
+@interface Dog ()
+
+-(NSString *) nestedPath;
+
+@end
+
 
 
 @implementation Dog
 
-@synthesize name, dogId , createdAt , updatedAt;
+@synthesize name, dogId , createdAt , updatedAt , personId;
 
 - (void) dealloc
 {
@@ -19,8 +27,35 @@
   [updatedAt release];
   [dogId release];
 	[name release];
+	[personId release];
 	[super dealloc];
 }
 
+#pragma mark ObjectiveResource overrides to handle nestd resources
+
++ (NSString *)collectionName {
+	return @&quot;people&quot;;
+}
+
+- (BOOL)createWithResponse:(NSError **)aError {
+	return [self createAtPath:[[self class] elementPath:[self nestedPath]] withResponse:aError];
+}
+
+- (BOOL)updateWithResponse:(NSError **)aError {
+	return [self updateAtPath:[[self class] elementPath:[self nestedPath]] withResponse:aError];	
+}
+
+- (BOOL)destroyWithResponse:(NSError **)aError {
+	return [self destroyAtPath:[[self class] elementPath:[self nestedPath]] withResponse:aError];
+}
+
+
+-(NSString *) nestedPath {
+	NSString *path = [NSString stringWithFormat:@&quot;%@/dogs&quot;,personId,nil];
+	if(dogId) {
+		path = [path stringByAppendingFormat:@&quot;/%@&quot;,dogId,nil];
+	}
+	return path;
+}
 
 @end</diff>
      <filename>Classes/Dog.m</filename>
    </modified>
    <modified>
      <diff>@@ -8,23 +8,23 @@
 
 #import &lt;UIKit/UIKit.h&gt;
 
-@class AddDogViewController;
+@class AddDogViewController , Person;
 
 
 @interface DogViewController : UIViewController &lt;UITableViewDelegate, UITableViewDataSource&gt; {
 
+	Person *owner;
 	NSMutableArray *dogs;
 	AddDogViewController *addController;
 	IBOutlet UITableView *tableView;
-  IBOutlet UIBarButtonItem * addButton;
 	
 }
 
+@property(nonatomic , retain) Person *owner;
 @property(nonatomic , retain) NSArray *dogs;
 @property(nonatomic , retain) AddDogViewController *addController;
 @property(nonatomic , retain) UITableView *tableView;
-@property(nonatomic , retain) UIBarButtonItem * addButton;
 
-- (IBAction) addDogButtonClicked:(id) sender;
+- (void) addDogButtonClicked;
 
 @end</diff>
      <filename>Classes/DogViewController.h</filename>
    </modified>
    <modified>
      <diff>@@ -8,6 +8,7 @@
 
 #import &quot;DogViewController.h&quot;
 #import &quot;Dog.h&quot;
+#import &quot;Person.h&quot;
 #import &quot;AddDogViewController.h&quot;
 #import &quot;ViewDogController.h&quot;
 
@@ -20,43 +21,36 @@
 
 @implementation DogViewController
 
-@synthesize dogs, addController, tableView , addButton;
+@synthesize dogs, addController, tableView , owner;
 
-- (IBAction) addDogButtonClicked:(id) sender {
+- (void) addDogButtonClicked {
+	Dog	 *newDog = [[[Dog alloc] init] autorelease];
+	newDog.personId = owner.personId;
+	addController.newDog = newDog;
 	[self.navigationController pushViewController:addController animated:YES];
 }
 
 - (void) loadDogs {
-
-//	
-	self.dogs = [Dog findAll];
+	self.dogs = [owner findAllDogs];
 	[tableView reloadData];
 }
 
 #pragma mark UIViewController methods
 
 - (void)viewDidLoad {
+	self.title = [NSString stringWithFormat:@&quot;%@s Dogs&quot;,owner.name];
 	self.addController = [[[AddDogViewController alloc] initWithNibName:@&quot;AddDogView&quot; bundle:nil] autorelease];
-  self.navigationItem.leftBarButtonItem = self.editButtonItem;
+	self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
+																																												 target:self action:@selector(addDogButtonClicked)]; 
 }
 
 
+
+
 - (void)viewWillAppear:(BOOL)animated {
 	[self loadDogs];
 }
 
-- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
-  
-  [super setEditing:editing animated:animated];
-  [tableView setEditing:editing animated:YES];
-  if (editing) {
-    addButton.enabled = NO;
-  } else {
-    addButton.enabled = YES;
-  }
-  
-}
-
 #pragma mark UITableViewDataSource methods
 
 - (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section {
@@ -100,7 +94,6 @@
 #pragma mark cleanup
 - (void)dealloc {
   
-  [addButton release];
 	[tableView release];
 	[addController release];
 	[dogs release];</diff>
      <filename>Classes/DogViewController.m</filename>
    </modified>
    <modified>
      <diff>@@ -26,14 +26,6 @@
 }
 
 
-/*
-// Implement loadView to create a view hierarchy programmatically.
-- (void)loadView {
-}
-*/
-
-
-// Implement viewDidLoad to do additional setup after loading the view.
 - (void)viewDidLoad {
   self.title = @&quot;Edit Dog&quot;;
   aTextField.returnKeyType = UIReturnKeyDone; 
@@ -50,7 +42,7 @@
   [textField resignFirstResponder];
   dog.name = textField.text;
   
-  // converts the object to xml and submits it to the resource
+	// explicitly update a dog on the server
   [dog update];
   aViewController.dog = dog;
   [self.navigationController popViewControllerAnimated:YES];
@@ -59,19 +51,6 @@
   return YES; 
 } 
 
-
-- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
-    // Return YES for supported orientations
-    return (interfaceOrientation == UIInterfaceOrientationPortrait);
-}
-
-
-- (void)didReceiveMemoryWarning {
-    [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
-    // Release anything that's not essential, such as cached data
-}
-
-
 - (void)dealloc {
   
   [dog release];</diff>
      <filename>Classes/EditDogViewController.m</filename>
    </modified>
    <modified>
      <diff>@@ -30,7 +30,6 @@
 }
 
 
-// Implement viewDidLoad to do additional setup after loading the view.
 - (void)viewDidLoad {
 
   self.title = dog.name;</diff>
      <filename>Classes/ViewDogController.m</filename>
    </modified>
    <modified>
      <diff>@@ -19,10 +19,10 @@
 	[ObjectiveResource setSite:@&quot;http://localhost:3000/&quot;];
 	
 	// use json
-	[ObjectiveResource setResponseType:JSONResponse];
+	//[ObjectiveResource setResponseType:JSONResponse];
 	
 	// use xml
-	//[ObjectiveResource setResponseType:XmlResponse];
+	[ObjectiveResource setResponseType:XmlResponse];
 	[window addSubview:navigationController.view];
 	
 	// Override point for customization after app launch	</diff>
      <filename>Classes/objective_resourceAppDelegate.m</filename>
    </modified>
    <modified>
      <diff>@@ -1,27 +1,19 @@
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;archive type=&quot;com.apple.InterfaceBuilder3.CocoaTouch.XIB&quot; version=&quot;7.03&quot;&gt;
+&lt;archive type=&quot;com.apple.InterfaceBuilder3.CocoaTouch.XIB&quot; version=&quot;7.02&quot;&gt;
 	&lt;data&gt;
 		&lt;int key=&quot;IBDocument.SystemTarget&quot;&gt;512&lt;/int&gt;
-		&lt;string key=&quot;IBDocument.SystemVersion&quot;&gt;9G55&lt;/string&gt;
-		&lt;string key=&quot;IBDocument.InterfaceBuilderVersion&quot;&gt;677&lt;/string&gt;
-		&lt;string key=&quot;IBDocument.AppKitVersion&quot;&gt;949.43&lt;/string&gt;
-		&lt;string key=&quot;IBDocument.HIToolboxVersion&quot;&gt;353.00&lt;/string&gt;
+		&lt;string key=&quot;IBDocument.SystemVersion&quot;&gt;9F33&lt;/string&gt;
+		&lt;string key=&quot;IBDocument.InterfaceBuilderVersion&quot;&gt;672&lt;/string&gt;
+		&lt;string key=&quot;IBDocument.AppKitVersion&quot;&gt;949.34&lt;/string&gt;
+		&lt;string key=&quot;IBDocument.HIToolboxVersion&quot;&gt;352.00&lt;/string&gt;
 		&lt;object class=&quot;NSMutableArray&quot; key=&quot;IBDocument.EditedObjectIDs&quot;&gt;
 			&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
+			&lt;integer value=&quot;11&quot;/&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;NSArray&quot; key=&quot;IBDocument.PluginDependencies&quot;&gt;
 			&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 			&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
 		&lt;/object&gt;
-		&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;IBDocument.Metadata&quot;&gt;
-			&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
-			&lt;object class=&quot;NSArray&quot; key=&quot;dict.sortedKeys&quot;&gt;
-				&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
-			&lt;/object&gt;
-			&lt;object class=&quot;NSMutableArray&quot; key=&quot;dict.values&quot;&gt;
-				&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
-			&lt;/object&gt;
-		&lt;/object&gt;
 		&lt;object class=&quot;NSMutableArray&quot; key=&quot;IBDocument.RootObjects&quot; id=&quot;1000&quot;&gt;
 			&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 			&lt;object class=&quot;IBProxyObject&quot; id=&quot;841351856&quot;&gt;
@@ -58,9 +50,10 @@
 					&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 					&lt;object class=&quot;IBUIViewController&quot; id=&quot;116467219&quot;&gt;
 						&lt;object class=&quot;IBUITableView&quot; key=&quot;IBUIView&quot; id=&quot;583803146&quot;&gt;
-							&lt;nil key=&quot;NSNextResponder&quot;/&gt;
+							&lt;reference key=&quot;NSNextResponder&quot;/&gt;
 							&lt;int key=&quot;NSvFlags&quot;&gt;274&lt;/int&gt;
 							&lt;string key=&quot;NSFrame&quot;&gt;{{0, -2}, {320, 419}}&lt;/string&gt;
+							&lt;reference key=&quot;NSSuperview&quot;/&gt;
 							&lt;object class=&quot;NSColor&quot; key=&quot;IBUIBackgroundColor&quot;&gt;
 								&lt;int key=&quot;NSColorSpace&quot;&gt;3&lt;/int&gt;
 								&lt;bytes key=&quot;NSWhite&quot;&gt;MQA&lt;/bytes&gt;
@@ -76,7 +69,8 @@
 							&lt;float key=&quot;IBUISectionFooterHeight&quot;&gt;2.700000e+01&lt;/float&gt;
 						&lt;/object&gt;
 						&lt;object class=&quot;IBUINavigationItem&quot; key=&quot;IBUINavigationItem&quot; id=&quot;904380780&quot;&gt;
-							&lt;string key=&quot;IBUITitle&quot;&gt;List of Dogs&lt;/string&gt;
+							&lt;reference key=&quot;IBUINavigationBar&quot;/&gt;
+							&lt;string key=&quot;IBUITitle&quot;&gt;List of People&lt;/string&gt;
 							&lt;object class=&quot;IBUIBarButtonItem&quot; key=&quot;IBUIRightBarButtonItem&quot; id=&quot;154151195&quot;&gt;
 								&lt;int key=&quot;IBUIStyle&quot;&gt;1&lt;/int&gt;
 								&lt;int key=&quot;IBUISystemItemIdentifier&quot;&gt;4&lt;/int&gt;
@@ -107,14 +101,6 @@
 					&lt;int key=&quot;connectionID&quot;&gt;5&lt;/int&gt;
 				&lt;/object&gt;
 				&lt;object class=&quot;IBConnectionRecord&quot;&gt;
-					&lt;object class=&quot;IBCocoaTouchEventConnection&quot; key=&quot;connection&quot;&gt;
-						&lt;string key=&quot;label&quot;&gt;addDogButtonClicked:&lt;/string&gt;
-						&lt;reference key=&quot;source&quot; ref=&quot;154151195&quot;/&gt;
-						&lt;reference key=&quot;destination&quot; ref=&quot;116467219&quot;/&gt;
-					&lt;/object&gt;
-					&lt;int key=&quot;connectionID&quot;&gt;17&lt;/int&gt;
-				&lt;/object&gt;
-				&lt;object class=&quot;IBConnectionRecord&quot;&gt;
 					&lt;object class=&quot;IBCocoaTouchOutletConnection&quot; key=&quot;connection&quot;&gt;
 						&lt;string key=&quot;label&quot;&gt;dataSource&lt;/string&gt;
 						&lt;reference key=&quot;source&quot; ref=&quot;583803146&quot;/&gt;
@@ -154,6 +140,14 @@
 					&lt;/object&gt;
 					&lt;int key=&quot;connectionID&quot;&gt;22&lt;/int&gt;
 				&lt;/object&gt;
+				&lt;object class=&quot;IBConnectionRecord&quot;&gt;
+					&lt;object class=&quot;IBCocoaTouchEventConnection&quot; key=&quot;connection&quot;&gt;
+						&lt;string key=&quot;label&quot;&gt;addButtonWasPressed&lt;/string&gt;
+						&lt;reference key=&quot;source&quot; ref=&quot;154151195&quot;/&gt;
+						&lt;reference key=&quot;destination&quot; ref=&quot;116467219&quot;/&gt;
+					&lt;/object&gt;
+					&lt;int key=&quot;connectionID&quot;&gt;23&lt;/int&gt;
+				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;object class=&quot;IBMutableOrderedSet&quot; key=&quot;objectRecords&quot;&gt;
 				&lt;object class=&quot;NSArray&quot; key=&quot;orderedObjects&quot;&gt;
@@ -262,7 +256,7 @@
 					&lt;string&gt;UIResponder&lt;/string&gt;
 					&lt;string&gt;{{487, 124}, {320, 480}}&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
-					&lt;string&gt;DogViewController&lt;/string&gt;
+					&lt;string&gt;PeopleViewController&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
@@ -303,16 +297,58 @@
 				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;nil key=&quot;sourceID&quot;/&gt;
-			&lt;int key=&quot;maxID&quot;&gt;22&lt;/int&gt;
+			&lt;int key=&quot;maxID&quot;&gt;23&lt;/int&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;IBClassDescriber&quot; key=&quot;IBDocument.Classes&quot;&gt;
 			&lt;object class=&quot;NSMutableArray&quot; key=&quot;referencedPartialClassDescriptions&quot;&gt;
 				&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
-					&lt;string key=&quot;className&quot;&gt;DogViewController&lt;/string&gt;
-					&lt;string key=&quot;superclassName&quot;&gt;UIViewController&lt;/string&gt;
+					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;Classes/lib/NSObject+JSONSerializableSupport.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;Classes/lib/NSObject+PropertySupport.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;Classes/lib/NSObject+Serialize.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;Classes/lib/NSObject+XMLSerializableSupport.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;Classes/lib/json-framework/NSObject+SBJSON.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;google_toolbar/UnitTesting/GTMSenTestCase.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;PeopleViewController&lt;/string&gt;
+					&lt;string key=&quot;superclassName&quot;&gt;UITableViewController&lt;/string&gt;
 					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;actions&quot;&gt;
-						&lt;string key=&quot;NS.key.0&quot;&gt;addDogButtonClicked:&lt;/string&gt;
+						&lt;string key=&quot;NS.key.0&quot;&gt;addButtonWasPressed&lt;/string&gt;
 						&lt;string key=&quot;NS.object.0&quot;&gt;id&lt;/string&gt;
 					&lt;/object&gt;
 					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;outlets&quot;&gt;
@@ -330,21 +366,7 @@
 					&lt;/object&gt;
 					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
 						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;
-						&lt;string key=&quot;minorKey&quot;&gt;Classes/DogViewController.h&lt;/string&gt;
-					&lt;/object&gt;
-				&lt;/object&gt;
-				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
-					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
-					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
-						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;
-						&lt;string key=&quot;minorKey&quot;&gt;Classes/lib/NSObject+PropertySupport.h&lt;/string&gt;
-					&lt;/object&gt;
-				&lt;/object&gt;
-				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
-					&lt;string key=&quot;className&quot;&gt;NSObject&lt;/string&gt;
-					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
-						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;
-						&lt;string key=&quot;minorKey&quot;&gt;Classes/lib/NSObject+XMLSerializableSupport.h&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;Classes/PeopleViewController.h&lt;/string&gt;
 					&lt;/object&gt;
 				&lt;/object&gt;
 				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
@@ -355,17 +377,27 @@
 						&lt;object class=&quot;NSMutableArray&quot; key=&quot;dict.sortedKeys&quot;&gt;
 							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 							&lt;string&gt;navigationController&lt;/string&gt;
-							&lt;string&gt;viewController&lt;/string&gt;
 							&lt;string&gt;window&lt;/string&gt;
 						&lt;/object&gt;
 						&lt;object class=&quot;NSMutableArray&quot; key=&quot;dict.values&quot;&gt;
 							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 							&lt;string&gt;UINavigationController&lt;/string&gt;
-							&lt;string&gt;id&lt;/string&gt;
 							&lt;string&gt;UIWindow&lt;/string&gt;
 						&lt;/object&gt;
 					&lt;/object&gt;
 					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
+						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;
+						&lt;string key=&quot;minorKey&quot;&gt;Classes/objective_resourceAppDelegate.h&lt;/string&gt;
+					&lt;/object&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
+					&lt;string key=&quot;className&quot;&gt;objective_resourceAppDelegate&lt;/string&gt;
+					&lt;string key=&quot;superclassName&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;outlets&quot;&gt;
+						&lt;string key=&quot;NS.key.0&quot;&gt;viewController&lt;/string&gt;
+						&lt;string key=&quot;NS.object.0&quot;&gt;id&lt;/string&gt;
+					&lt;/object&gt;
+					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
 						&lt;string key=&quot;majorKey&quot;&gt;IBUserSource&lt;/string&gt;
 						&lt;string key=&quot;minorKey&quot;/&gt;
 					&lt;/object&gt;
@@ -373,7 +405,7 @@
 			&lt;/object&gt;
 		&lt;/object&gt;
 		&lt;int key=&quot;IBDocument.localizationMode&quot;&gt;0&lt;/int&gt;
-		&lt;string key=&quot;IBDocument.LastKnownRelativeProjectPath&quot;&gt;active_resource.xcodeproj&lt;/string&gt;
+		&lt;string key=&quot;IBDocument.LastKnownRelativeProjectPath&quot;&gt;objective_resource.xcodeproj&lt;/string&gt;
 		&lt;int key=&quot;IBDocument.defaultPropertyAccessControl&quot;&gt;3&lt;/int&gt;
 	&lt;/data&gt;
 &lt;/archive&gt;</diff>
      <filename>MainWindow.xib</filename>
    </modified>
    <modified>
      <diff>@@ -11,10 +11,17 @@
 		1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
 		1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
 		1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
+		2314FD1E0F2F58F3003B13AB /* AddPersonViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2314FD1D0F2F58F3003B13AB /* AddPersonViewController.m */; };
+		2314FD1F0F2F58F3003B13AB /* AddPersonViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2314FD1D0F2F58F3003B13AB /* AddPersonViewController.m */; };
+		2314FD210F2F5A37003B13AB /* AddPersonView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2314FD200F2F5A37003B13AB /* AddPersonView.xib */; };
+		2314FD220F2F5A37003B13AB /* AddPersonView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2314FD200F2F5A37003B13AB /* AddPersonView.xib */; };
+		2314FDC00F2F6BA1003B13AB /* ViewPersonController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2314FDBF0F2F6BA1003B13AB /* ViewPersonController.m */; };
+		2314FDC10F2F6BA1003B13AB /* ViewPersonController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2314FDBF0F2F6BA1003B13AB /* ViewPersonController.m */; };
+		2314FE400F2F7342003B13AB /* EditPersonController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2314FE3F0F2F7342003B13AB /* EditPersonController.xib */; };
+		2314FE410F2F7342003B13AB /* EditPersonController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2314FE3F0F2F7342003B13AB /* EditPersonController.xib */; };
 		2377C4F50F019E67006E155F /* NSHTTPURLResponse+Error.m in Sources */ = {isa = PBXBuildFile; fileRef = 2377C4F40F019E67006E155F /* NSHTTPURLResponse+Error.m */; };
 		2377C4F60F019E67006E155F /* NSHTTPURLResponse+Error.m in Sources */ = {isa = PBXBuildFile; fileRef = 2377C4F40F019E67006E155F /* NSHTTPURLResponse+Error.m */; };
 		23829E0C0EA393700070F0BF /* EditDogViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23829E0B0EA393700070F0BF /* EditDogViewController.m */; };
-		23829E0E0EA393DA0070F0BF /* EditDogViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 23829E0D0EA393DA0070F0BF /* EditDogViewController.xib */; };
 		23829F010EA39B3B0070F0BF /* ViewDogController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23829F000EA39B3B0070F0BF /* ViewDogController.m */; };
 		23829F120EA39C430070F0BF /* ViewDogController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 23829F110EA39C430070F0BF /* ViewDogController.xib */; };
 		239AC9D20F2574EA00F5B672 /* NSObject+Serialize.m in Sources */ = {isa = PBXBuildFile; fileRef = 239AC9D10F2574EA00F5B672 /* NSObject+Serialize.m */; };
@@ -52,10 +59,16 @@
 		239D75CD0EAF8D3700664953 /* ObjectiveResourceDateFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 239D75CC0EAF8D3700664953 /* ObjectiveResourceDateFormatter.m */; };
 		239D75CE0EAF8D3700664953 /* ObjectiveResourceDateFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 239D75CC0EAF8D3700664953 /* ObjectiveResourceDateFormatter.m */; };
 		23B4A6420F092B620021AB9D /* DogErrorTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B4A6410F092B620021AB9D /* DogErrorTest.m */; };
+		23BA04AA0F2E3CAF00D04F84 /* Person.m in Sources */ = {isa = PBXBuildFile; fileRef = 23BA04A90F2E3CAF00D04F84 /* Person.m */; };
 		23C922800F24FED700EDE8AF /* ObjectiveResource+JSONSerializableSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C9227F0F24FED700EDE8AF /* ObjectiveResource+JSONSerializableSupport.m */; };
 		23C922810F24FED700EDE8AF /* ObjectiveResource+JSONSerializableSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C9227F0F24FED700EDE8AF /* ObjectiveResource+JSONSerializableSupport.m */; };
 		23C922F30F25066900EDE8AF /* NSMutableURLRequest+ResponseType.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C922F20F25066900EDE8AF /* NSMutableURLRequest+ResponseType.m */; };
 		23C922F40F25066900EDE8AF /* NSMutableURLRequest+ResponseType.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C922F20F25066900EDE8AF /* NSMutableURLRequest+ResponseType.m */; };
+		23E2B8420F2E5AE00061807E /* Person.m in Sources */ = {isa = PBXBuildFile; fileRef = 23BA04A90F2E3CAF00D04F84 /* Person.m */; };
+		23E2B88A0F2E5D220061807E /* PeopleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E2B8890F2E5D220061807E /* PeopleViewController.m */; };
+		23E2B88B0F2E5D220061807E /* PeopleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E2B8890F2E5D220061807E /* PeopleViewController.m */; };
+		23E2B8F70F2E64F30061807E /* DogViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 23E2B8F60F2E64F30061807E /* DogViewController.xib */; };
+		23E2B8F80F2E64F30061807E /* DogViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 23E2B8F60F2E64F30061807E /* DogViewController.xib */; };
 		23E62A920F2011070083A66B /* NSDictionary+JSONSerializableSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E62A910F2011070083A66B /* NSDictionary+JSONSerializableSupport.m */; };
 		23E62A930F2011070083A66B /* NSDictionary+JSONSerializableSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E62A910F2011070083A66B /* NSDictionary+JSONSerializableSupport.m */; };
 		23E62A990F2013B90083A66B /* NSDictionary+KeyTranslation.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E62A980F2013B90083A66B /* NSDictionary+KeyTranslation.m */; };
@@ -101,13 +114,18 @@
 		1D3623250D0F684500981E51 /* objective_resourceAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = objective_resourceAppDelegate.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		1D6058910D05DD3D006BFB54 /* objective_resource.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = objective_resource.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+		2314FD1C0F2F58F3003B13AB /* AddPersonViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddPersonViewController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		2314FD1D0F2F58F3003B13AB /* AddPersonViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AddPersonViewController.m; sourceTree = &quot;&lt;group&gt;&quot;; };
+		2314FD200F2F5A37003B13AB /* AddPersonView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = AddPersonView.xib; path = Classes/AddPersonView.xib; sourceTree = &quot;&lt;group&gt;&quot;; };
+		2314FDBE0F2F6BA1003B13AB /* ViewPersonController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewPersonController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		2314FDBF0F2F6BA1003B13AB /* ViewPersonController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewPersonController.m; sourceTree = &quot;&lt;group&gt;&quot;; };
+		2314FE3F0F2F7342003B13AB /* EditPersonController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = EditPersonController.xib; path = Classes/EditPersonController.xib; sourceTree = &quot;&lt;group&gt;&quot;; };
 		232C77860F1E482F009B254D /* JSONSerializable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSONSerializable.h; path = lib/JSONSerializable.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23493DF50F1E8D9C00E3AF41 /* JSONSerializableSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSONSerializableSupport.h; path = lib/JSONSerializableSupport.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		2377C4F30F019E67006E155F /* NSHTTPURLResponse+Error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = &quot;NSHTTPURLResponse+Error.h&quot;; path = &quot;lib/NSHTTPURLResponse+Error.h&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		2377C4F40F019E67006E155F /* NSHTTPURLResponse+Error.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = &quot;NSHTTPURLResponse+Error.m&quot;; path = &quot;lib/NSHTTPURLResponse+Error.m&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23829E0A0EA393700070F0BF /* EditDogViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditDogViewController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23829E0B0EA393700070F0BF /* EditDogViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EditDogViewController.m; sourceTree = &quot;&lt;group&gt;&quot;; };
-		23829E0D0EA393DA0070F0BF /* EditDogViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EditDogViewController.xib; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23829EFF0EA39B3B0070F0BF /* ViewDogController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewDogController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23829F000EA39B3B0070F0BF /* ViewDogController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewDogController.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23829F110EA39C430070F0BF /* ViewDogController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ViewDogController.xib; sourceTree = &quot;&lt;group&gt;&quot;; };
@@ -133,10 +151,15 @@
 		239D75CC0EAF8D3700664953 /* ObjectiveResourceDateFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ObjectiveResourceDateFormatter.m; path = lib/ObjectiveResourceDateFormatter.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23B4A6400F092B620021AB9D /* DogErrorTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DogErrorTest.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23B4A6410F092B620021AB9D /* DogErrorTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DogErrorTest.m; sourceTree = &quot;&lt;group&gt;&quot;; };
+		23BA04A80F2E3CAF00D04F84 /* Person.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Person.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		23BA04A90F2E3CAF00D04F84 /* Person.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Person.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23C9227E0F24FED700EDE8AF /* ObjectiveResource+JSONSerializableSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = &quot;ObjectiveResource+JSONSerializableSupport.h&quot;; path = &quot;lib/ObjectiveResource+JSONSerializableSupport.h&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23C9227F0F24FED700EDE8AF /* ObjectiveResource+JSONSerializableSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = &quot;ObjectiveResource+JSONSerializableSupport.m&quot;; path = &quot;lib/ObjectiveResource+JSONSerializableSupport.m&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23C922F10F25066900EDE8AF /* NSMutableURLRequest+ResponseType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = &quot;NSMutableURLRequest+ResponseType.h&quot;; path = &quot;lib/NSMutableURLRequest+ResponseType.h&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23C922F20F25066900EDE8AF /* NSMutableURLRequest+ResponseType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = &quot;NSMutableURLRequest+ResponseType.m&quot;; path = &quot;lib/NSMutableURLRequest+ResponseType.m&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
+		23E2B8880F2E5D220061807E /* PeopleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PeopleViewController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		23E2B8890F2E5D220061807E /* PeopleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PeopleViewController.m; sourceTree = &quot;&lt;group&gt;&quot;; };
+		23E2B8F60F2E64F30061807E /* DogViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DogViewController.xib; path = Classes/DogViewController.xib; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23E62A900F2011070083A66B /* NSDictionary+JSONSerializableSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = &quot;NSDictionary+JSONSerializableSupport.h&quot;; path = &quot;lib/NSDictionary+JSONSerializableSupport.h&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23E62A910F2011070083A66B /* NSDictionary+JSONSerializableSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = &quot;NSDictionary+JSONSerializableSupport.m&quot;; path = &quot;lib/NSDictionary+JSONSerializableSupport.m&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		23E62A970F2013B90083A66B /* NSDictionary+KeyTranslation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = &quot;NSDictionary+KeyTranslation.h&quot;; path = &quot;lib/NSDictionary+KeyTranslation.h&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
@@ -287,6 +310,7 @@
 				29B97323FDCFA39411CA2CEA /* Frameworks */,
 				19C28FACFE9D520D11CA2CBB /* Products */,
 				239D4FF60EA6907E00318802 /* Unit Tests-Info.plist */,
+				2314FE3F0F2F7342003B13AB /* EditPersonController.xib */,
 			);
 			name = CustomTemplate;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -303,8 +327,9 @@
 		29B97317FDCFA39411CA2CEA /* Resources */ = {
 			isa = PBXGroup;
 			children = (
+				2314FD200F2F5A37003B13AB /* AddPersonView.xib */,
 				23829F110EA39C430070F0BF /* ViewDogController.xib */,
-				23829E0D0EA393DA0070F0BF /* EditDogViewController.xib */,
+				23E2B8F60F2E64F30061807E /* DogViewController.xib */,
 				28AD733E0D9D9553002E5188 /* MainWindow.xib */,
 				8D1107310486CEB800E47090 /* Info.plist */,
 				350421CA0E5E1E0900493366 /* AddDogView.xib */,
@@ -338,6 +363,14 @@
 				23829F000EA39B3B0070F0BF /* ViewDogController.m */,
 				1D3623240D0F684500981E51 /* objective_resourceAppDelegate.h */,
 				1D3623250D0F684500981E51 /* objective_resourceAppDelegate.m */,
+				23BA04A80F2E3CAF00D04F84 /* Person.h */,
+				23BA04A90F2E3CAF00D04F84 /* Person.m */,
+				23E2B8880F2E5D220061807E /* PeopleViewController.h */,
+				23E2B8890F2E5D220061807E /* PeopleViewController.m */,
+				2314FD1C0F2F58F3003B13AB /* AddPersonViewController.h */,
+				2314FD1D0F2F58F3003B13AB /* AddPersonViewController.m */,
+				2314FDBE0F2F6BA1003B13AB /* ViewPersonController.h */,
+				2314FDBF0F2F6BA1003B13AB /* ViewPersonController.m */,
 			);
 			name = Example;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -548,8 +581,10 @@
 			files = (
 				28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */,
 				350421CB0E5E1E0900493366 /* AddDogView.xib in Resources */,
-				23829E0E0EA393DA0070F0BF /* EditDogViewController.xib in Resources */,
 				23829F120EA39C430070F0BF /* ViewDogController.xib in Resources */,
+				23E2B8F80F2E64F30061807E /* DogViewController.xib in Resources */,
+				2314FD220F2F5A37003B13AB /* AddPersonView.xib in Resources */,
+				2314FE410F2F7342003B13AB /* EditPersonController.xib in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -558,6 +593,9 @@
 			buildActionMask = 2147483647;
 			files = (
 				239D50E70EA694F300318802 /* rails_boot_strap.rb in Resources */,
+				23E2B8F70F2E64F30061807E /* DogViewController.xib in Resources */,
+				2314FD210F2F5A37003B13AB /* AddPersonView.xib in Resources */,
+				2314FE400F2F7342003B13AB /* EditPersonController.xib in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -568,6 +606,7 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				23E2B8420F2E5AE00061807E /* Person.m in Sources */,
 				1D60589B0D05DD56006BFB54 /* main.m in Sources */,
 				1D3623260D0F684500981E51 /* objective_resourceAppDelegate.m in Sources */,
 				350420F40E5E15AA00493366 /* DogViewController.m in Sources */,
@@ -604,6 +643,9 @@
 				35C6753C0F2E020B005FF6CE /* NSObject+SBJSON.m in Sources */,
 				35C6753D0F2E020B005FF6CE /* NSString+SBJSON.m in Sources */,
 				35C6753E0F2E020B005FF6CE /* SBJSON.m in Sources */,
+				23E2B88B0F2E5D220061807E /* PeopleViewController.m in Sources */,
+				2314FD1E0F2F58F3003B13AB /* AddPersonViewController.m in Sources */,
+				2314FDC00F2F6BA1003B13AB /* ViewPersonController.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -650,6 +692,10 @@
 				35C6753F0F2E020B005FF6CE /* NSObject+SBJSON.m in Sources */,
 				35C675400F2E020B005FF6CE /* NSString+SBJSON.m in Sources */,
 				35C675410F2E020B005FF6CE /* SBJSON.m in Sources */,
+				23BA04AA0F2E3CAF00D04F84 /* Person.m in Sources */,
+				23E2B88A0F2E5D220061807E /* PeopleViewController.m in Sources */,
+				2314FD1F0F2F58F3003B13AB /* AddPersonViewController.m in Sources */,
+				2314FDC10F2F6BA1003B13AB /* ViewPersonController.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};</diff>
      <filename>objective_resource.xcodeproj/project.pbxproj</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,11 @@
 class DogsController &lt; ApplicationController
   # GET /dogs
   # GET /dogs.xml
+  
+  before_filter :find_person
+  
   def index
-    @dogs = Dog.find(:all)
+    @dogs = @person.dogs.all
 
     respond_to do |format|
       format.html # index.html.erb
@@ -19,19 +22,19 @@ class DogsController &lt; ApplicationController
     respond_to do |format|
       format.html # show.html.erb
       format.xml  { render :xml =&gt; @dog }
-      format.json  { render :json =&gt; @dog.to_json }
+      format.json  { render :json =&gt; @dog }
     end
   end
 
   # GET /dogs/new
   # GET /dogs/new.xml
   def new
-    @dog = Dog.new
+    @dog = @person.dogs.create
 
     respond_to do |format|
       format.html # new.html.erb
       format.xml  { render :xml =&gt; @dog }
-      format.json  { render :json =&gt; @dog.to_json }      
+      format.json  { render :json =&gt; @dog }      
     end
   end
 
@@ -43,7 +46,7 @@ class DogsController &lt; ApplicationController
   # POST /dogs
   # POST /dogs.xml
   def create
-    @dog = Dog.new(params[:dog])
+    @dog = @person.dogs.create(params[:dog])
 
     respond_to do |format|
       if @dog.save
@@ -67,7 +70,7 @@ class DogsController &lt; ApplicationController
     respond_to do |format|
       if @dog.update_attributes(params[:dog])
         flash[:notice] = 'Dog was successfully updated.'
-        format.html { redirect_to(@dog) }
+        format.html { redirect_to([@person,@dog]) }
         format.xml  { head :ok }
         format.json { head :ok }
       else
@@ -85,9 +88,16 @@ class DogsController &lt; ApplicationController
     @dog.destroy
 
     respond_to do |format|
-      format.html { redirect_to(dogs_url) }
+      format.html { redirect_to(person_dogs_url(@person)) }
       format.xml  { head :ok }
       format.json { head :ok }
     end
   end
+  
+  private
+  
+  def find_person
+    @person = Person.find(params[:person_id])
+  end
+  
 end</diff>
      <filename>sample_rails_app/app/controllers/dogs_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,2 +1,3 @@
 class Dog &lt; ActiveRecord::Base
+  belongs_to :person
 end</diff>
      <filename>sample_rails_app/app/models/dog.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;h1&gt;Editing dog&lt;/h1&gt;
 
-&lt;% form_for(@dog) do |f| %&gt;
+&lt;% form_for([@person,@dog]) do |f| %&gt;
   &lt;%= f.error_messages %&gt;
 
   &lt;p&gt;
@@ -12,5 +12,5 @@
   &lt;/p&gt;
 &lt;% end %&gt;
 
-&lt;%= link_to 'Show', @dog %&gt; |
-&lt;%= link_to 'Back', dogs_path %&gt;
+&lt;%= link_to 'Show', [@person,@dog] %&gt; |
+&lt;%= link_to 'Back', person_dogs_path(@person) %&gt;</diff>
      <filename>sample_rails_app/app/views/dogs/edit.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -8,13 +8,14 @@
 &lt;% for dog in @dogs %&gt;
   &lt;tr&gt;
     &lt;td&gt;&lt;%=h dog.name %&gt;&lt;/td&gt;
-    &lt;td&gt;&lt;%= link_to 'Show', dog %&gt;&lt;/td&gt;
-    &lt;td&gt;&lt;%= link_to 'Edit', edit_dog_path(dog) %&gt;&lt;/td&gt;
-    &lt;td&gt;&lt;%= link_to 'Destroy', dog, :confirm =&gt; 'Are you sure?', :method =&gt; :delete %&gt;&lt;/td&gt;
+    &lt;td&gt;&lt;%= link_to 'Show', [@person,dog] %&gt;&lt;/td&gt;
+    &lt;td&gt;&lt;%= link_to 'Edit', edit_person_dog_path(dog.person,dog) %&gt;&lt;/td&gt;
+    &lt;td&gt;&lt;%= link_to 'Destroy', [@person,dog], :confirm =&gt; 'Are you sure?', :method =&gt; :delete %&gt;&lt;/td&gt;
   &lt;/tr&gt;
 &lt;% end %&gt;
 &lt;/table&gt;
 
 &lt;br /&gt;
 
-&lt;%= link_to 'New dog', new_dog_path %&gt;
+&lt;%= link_to 'Back to Person', @person %&gt;|
+&lt;%= link_to 'New dog', new_person_dog_path(@person) %&gt;</diff>
      <filename>sample_rails_app/app/views/dogs/index.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;h1&gt;New dog&lt;/h1&gt;
 
-&lt;% form_for(@dog) do |f| %&gt;
+&lt;% form_for([@person,@dog]) do |f| %&gt;
   &lt;%= f.error_messages %&gt;
 
   &lt;p&gt;
@@ -12,4 +12,4 @@
   &lt;/p&gt;
 &lt;% end %&gt;
 
-&lt;%= link_to 'Back', dogs_path %&gt;
+&lt;%= link_to 'Back', person_dogs_path(@person) %&gt;</diff>
      <filename>sample_rails_app/app/views/dogs/new.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -4,5 +4,5 @@
 &lt;/p&gt;
 
 
-&lt;%= link_to 'Edit', edit_dog_path(@dog) %&gt; |
-&lt;%= link_to 'Back', dogs_path %&gt;
+&lt;%= link_to 'Edit', edit_person_dog_path(@person,@dog) %&gt; |
+&lt;%= link_to 'Back', person_dogs_path(@person) %&gt;</diff>
      <filename>sample_rails_app/app/views/dogs/show.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,43 +1,10 @@
 ActionController::Routing::Routes.draw do |map|
-  map.resources :dogs
-
-  # The priority is based upon order of creation: first created -&gt; highest priority.
-
-  # Sample of regular route:
-  #   map.connect 'products/:id', :controller =&gt; 'catalog', :action =&gt; 'view'
-  # Keep in mind you can assign values other than :controller and :action
-
-  # Sample of named route:
-  #   map.purchase 'products/:id/purchase', :controller =&gt; 'catalog', :action =&gt; 'purchase'
-  # This route can be invoked with purchase_url(:id =&gt; product.id)
-
-  # Sample resource route (maps HTTP verbs to controller actions automatically):
-  #   map.resources :products
-
-  # Sample resource route with options:
-  #   map.resources :products, :member =&gt; { :short =&gt; :get, :toggle =&gt; :post }, :collection =&gt; { :sold =&gt; :get }
-
-  # Sample resource route with sub-resources:
-  #   map.resources :products, :has_many =&gt; [ :comments, :sales ], :has_one =&gt; :seller
+  map.resources :people
   
-  # Sample resource route with more complex sub-resources
-  #   map.resources :products do |products|
-  #     products.resources :comments
-  #     products.resources :sales, :collection =&gt; { :recent =&gt; :get }
-  #   end
-
-  # Sample resource route within a namespace:
-  #   map.namespace :admin do |admin|
-  #     # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb)
-  #     admin.resources :products
-  #   end
-
-  # You can have the root of your site routed with map.root -- just remember to delete public/index.html.
-  # map.root :controller =&gt; &quot;welcome&quot;
-
-  # See how all your routes lay out with &quot;rake routes&quot;
+  map.resources :people do |person|
+    person.resources :dogs
+  end
 
-  # Install the default routes as the lowest priority.
   map.connect ':controller/:action/:id'
   map.connect ':controller/:action/:id.:format'
 end</diff>
      <filename>sample_rails_app/config/routes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,12 +9,19 @@
 #
 # It's strongly recommended to check this file into your version control system.
 
-ActiveRecord::Schema.define(:version =&gt; 20080821214658) do
+ActiveRecord::Schema.define(:version =&gt; 20090126164129) do
 
   create_table &quot;dogs&quot;, :force =&gt; true do |t|
     t.string   &quot;name&quot;
     t.datetime &quot;created_at&quot;
     t.datetime &quot;updated_at&quot;
+    t.integer  &quot;person_id&quot;
+  end
+
+  create_table &quot;people&quot;, :force =&gt; true do |t|
+    t.string   &quot;name&quot;
+    t.datetime &quot;created_at&quot;
+    t.datetime &quot;updated_at&quot;
   end
 
 end</diff>
      <filename>sample_rails_app/db/schema.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1592,7 +1592,7 @@ Element.Methods = {
     if (content &amp;&amp; content.toElement) content = content.toElement();
     else if (!Object.isElement(content)) {
       content = Object.toHTML(content);
-      var range = element.ownerDocument.createRange();
+      var range = element.personDocument.createRange();
       range.selectNode(element);
       content.evalScripts.bind(content).defer();
       content = range.createContextualFragment(content.stripScripts());
@@ -1623,7 +1623,7 @@ Element.Methods = {
 
       content = Object.toHTML(content);
 
-      range = element.ownerDocument.createRange();
+      range = element.personDocument.createRange();
       t.initializeRange(element, range);
       t.insert(element, range.createContextualFragment(content.stripScripts()));
 </diff>
      <filename>sample_rails_app/public/javascripts/prototype.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>a873572bad7ab69dd92ebd1cb538f7136bb25e1e</id>
    </parent>
  </parents>
  <author>
    <name>James Burka</name>
    <email>jjburka@gmail.com</email>
  </author>
  <url>http://github.com/Glennumz/objectiveresource/commit/4e5ad0b709542970e235874e18bc004a69012de7</url>
  <id>4e5ad0b709542970e235874e18bc004a69012de7</id>
  <committed-date>2009-01-27T09:42:28-08:00</committed-date>
  <authored-date>2009-01-27T09:42:28-08:00</authored-date>
  <message>[#7] updated sample app to show nested paths</message>
  <tree>28f6fe616f591b708a0f917c3f356bdf35880a91</tree>
  <committer>
    <name>James Burka</name>
    <email>jjburka@gmail.com</email>
  </committer>
</commit>
