diff --git a/lib/src/test/java/io/v/v23/syncbase/SyncbaseTest.java b/lib/src/test/java/io/v/v23/syncbase/SyncbaseTest.java
index f92c383..9da28a8 100644
--- a/lib/src/test/java/io/v/v23/syncbase/SyncbaseTest.java
+++ b/lib/src/test/java/io/v/v23/syncbase/SyncbaseTest.java
@@ -17,7 +17,7 @@
 import io.v.v23.services.syncbase.nosql.BlobRef;
 import io.v.v23.services.syncbase.nosql.KeyValue;
 import io.v.v23.services.syncbase.nosql.SyncgroupMemberInfo;
-import io.v.v23.services.syncbase.nosql.SyncgroupPrefix;
+import io.v.v23.services.syncbase.nosql.TableRow;
 import io.v.v23.services.syncbase.nosql.SyncgroupSpec;
 import io.v.v23.syncbase.nosql.BatchDatabase;
 import io.v.v23.syncbase.nosql.BlobReader;
@@ -317,7 +317,7 @@
 
         // "A" creates the group.
         SyncgroupSpec spec = new SyncgroupSpec("test", allowAll,
-            ImmutableList.of(new SyncgroupPrefix(TABLE_NAME, "")),
+            ImmutableList.of(new TableRow(TABLE_NAME, "")),
             ImmutableList.<String>of(), false);
         SyncgroupMemberInfo memberInfo = new SyncgroupMemberInfo((byte) 1);
         Syncgroup group = db.getSyncgroup(groupName);
@@ -331,14 +331,14 @@
         // TODO(spetrovic): test leave() and destroy().
 
         SyncgroupSpec specRMW = new SyncgroupSpec("testRMW", allowAll,
-            ImmutableList.of(new SyncgroupPrefix(TABLE_NAME, "")),
+            ImmutableList.of(new TableRow(TABLE_NAME, "")),
             ImmutableList.<String>of(), false);
         assertThat(group.getSpec(ctx).keySet()).isNotEmpty();
         String version = group.getSpec(ctx).keySet().iterator().next();
         group.setSpec(ctx, specRMW, version);
         assertThat(group.getSpec(ctx).values()).containsExactly(specRMW);
         SyncgroupSpec specOverwrite = new SyncgroupSpec("testOverwrite", allowAll,
-            ImmutableList.of(new SyncgroupPrefix(TABLE_NAME, "")),
+            ImmutableList.of(new TableRow(TABLE_NAME, "")),
             ImmutableList.<String>of(), false);
         group.setSpec(ctx, specOverwrite, "");
         assertThat(group.getSpec(ctx).values()).containsExactly(specOverwrite);
diff --git a/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/db/SyncbaseDB.java b/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/db/SyncbaseDB.java
index d6aa758..a8a8039 100644
--- a/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/db/SyncbaseDB.java
+++ b/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/db/SyncbaseDB.java
@@ -50,7 +50,7 @@
 import io.v.v23.security.access.Permissions;
 import io.v.v23.services.syncbase.nosql.PrefixPermissions;
 import io.v.v23.services.syncbase.nosql.SyncgroupMemberInfo;
-import io.v.v23.services.syncbase.nosql.SyncgroupPrefix;
+import io.v.v23.services.syncbase.nosql.TableRow;
 import io.v.v23.services.syncbase.nosql.SyncgroupSpec;
 import io.v.v23.services.watch.ResumeMarker;
 import io.v.v23.syncbase.Syncbase;
@@ -262,8 +262,8 @@
                                 SYNCGROUP_PRESENTATION_DESCRIPTION,
                                 groupReadPermissions,
                                 Arrays.asList(
-                                        new SyncgroupPrefix(PRESENTATIONS_TABLE, prefix),
-                                        new SyncgroupPrefix(DECKS_TABLE, deckId)),
+                                        new TableRow(PRESENTATIONS_TABLE, prefix),
+                                        new TableRow(DECKS_TABLE, deckId)),
                                 Arrays.asList(V23Manager.syncName("sg")),
                                 false
                         ),
