Index: trunk/lib/Bookmark.pm
===================================================================
--- trunk/lib/Bookmark.pm	(revision 74)
+++ trunk/lib/Bookmark.pm	(revision 75)
@@ -17,4 +17,5 @@
 has bookmark_uri => ( is => 'rw' );
 has exists => ( is => 'ro' );
+has collection => ( is => 'ro' );
 
 sub created { scalar localtime $_[0]->ctime }
@@ -44,4 +45,10 @@
 }
 
+sub update {
+    my $self = shift;
+    die "Not part of a collection; nowhere to write this bookmark" unless $self->collection;
+    return $self->collection->update($self);
+}
+
 # module return
 1;
Index: trunk/lib/Bookmarks.pm
===================================================================
--- trunk/lib/Bookmarks.pm	(revision 74)
+++ trunk/lib/Bookmarks.pm	(revision 75)
@@ -67,7 +67,8 @@
     return Bookmark->new({
         %$bookmark,
-        exists   => 1,
-        tags     => [ $self->get_tags({ uri => $bookmark->{uri} }) ],
-        base_uri => $self->base_uri,
+        exists     => 1,
+        tags       => [ $self->get_tags({ uri => $bookmark->{uri} }) ],
+        base_uri   => $self->base_uri,
+        collection => $self,
     });
 }
@@ -110,6 +111,8 @@
         push @resources, Bookmark->new({
             %$resource,
-            tags     => [ $self->get_tags({ uri => $resource->{uri} }) ],
-            base_uri => $self->base_uri,
+            exists     => 1,
+            tags       => [ $self->get_tags({ uri => $resource->{uri} }) ],
+            base_uri   => $self->base_uri,
+            collection => $self,
         });
     }
@@ -184,4 +187,5 @@
     my $bookmark = shift;
 
+    #TODO: accept a pre-made Bookmark object in addition to a hash
     my $uri = $bookmark->{uri};
     my $title = $bookmark->{title};
Index: trunk/lib/Bookmarks/Controller.pm
===================================================================
--- trunk/lib/Bookmarks/Controller.pm	(revision 74)
+++ trunk/lib/Bookmarks/Controller.pm	(revision 75)
@@ -203,5 +203,5 @@
 
         # write to the database
-        $self->bookmarks->update($bookmark);
+        $bookmark->update;
 
         #TODO: not RESTful; proper response would be a 200
