diff --git a/dart/lib/src/app.dart b/dart/lib/src/app.dart
index 74d5a58..8ec5313 100644
--- a/dart/lib/src/app.dart
+++ b/dart/lib/src/app.dart
@@ -4,12 +4,14 @@
 
 part of syncbase_client;
 
+// TODO(sadovsky): Add listDatabases method.
 class SyncbaseApp extends NamedResource {
-  SyncbaseApp._internal(_proxy, fullName)
-      : super._internal(_proxy, null, fullName);
+  // NOTE(sadovsky): For the Mojo Syncbase service, we only store names from app
+  // down - i.e. there is no service name.
+  SyncbaseApp._internal(_proxy, relativeName)
+      : super._internal(_proxy, null, relativeName);
 
-  // noSqlDatabase returns the noSqlDatabase with the given relativeName.
-  // relativeName must not contain slashes.
+  // noSqlDatabase returns a noSqlDatabase with the given relativeName.
   SyncbaseNoSqlDatabase noSqlDatabase(String relativeName) {
     return new SyncbaseNoSqlDatabase._internal(_proxy, fullName, relativeName);
   }
diff --git a/dart/lib/src/named_resource.dart b/dart/lib/src/named_resource.dart
index 1eb6f33..23058f9 100644
--- a/dart/lib/src/named_resource.dart
+++ b/dart/lib/src/named_resource.dart
@@ -14,10 +14,8 @@
       mojom.SyncbaseProxy _proxy, String _parentFullName, String relativeName)
       : this._proxy = _proxy,
         this.relativeName = relativeName,
-        this.fullName = (_parentFullName == null ? '' : _parentFullName + '/') +
-            relativeName {
-    if (relativeName.contains('/')) {
-      throw 'relativeName cannot contain "/": $relativeName';
-    }
-  }
+        this.fullName = (_parentFullName == null
+                ? ''
+                : (_parentFullName + '/\$/')) +
+            relativeName {}
 }
diff --git a/dart/lib/src/nosql/database.dart b/dart/lib/src/nosql/database.dart
index d9711dc..e3453d7 100644
--- a/dart/lib/src/nosql/database.dart
+++ b/dart/lib/src/nosql/database.dart
@@ -4,12 +4,12 @@
 
 part of syncbase_client;
 
+// TODO(sadovsky): Add listTables method.
 class SyncbaseNoSqlDatabase extends NamedResource {
   SyncbaseNoSqlDatabase._internal(_proxy, _parentFullName, relativeName)
       : super._internal(_proxy, _parentFullName, relativeName);
 
-  // table returns a table with the given relativeName.  relativeName must not
-  // contain slashes.
+  // table returns a table with the given relativeName.
   SyncbaseTable table(String relativeName) {
     return new SyncbaseTable._internal(_proxy, fullName, relativeName);
   }
diff --git a/dart/lib/src/nosql/row.dart b/dart/lib/src/nosql/row.dart
index 26f1ee3..3eeaecf 100644
--- a/dart/lib/src/nosql/row.dart
+++ b/dart/lib/src/nosql/row.dart
@@ -5,8 +5,11 @@
 part of syncbase_client;
 
 class SyncbaseRow extends NamedResource {
-  SyncbaseRow._internal(_proxy, _parentFullName, relativeName)
-      : super._internal(_proxy, _parentFullName, relativeName);
+  final String key;
+
+  SyncbaseRow._internal(_proxy, _parentFullName, key)
+      : super._internal(_proxy, _parentFullName, key),
+        this.key = key;
 
   Future<bool> exists() async {
     var v = await _proxy.ptr.rowExists(fullName);
diff --git a/dart/lib/src/nosql/table.dart b/dart/lib/src/nosql/table.dart
index f5e447b..619a634 100644
--- a/dart/lib/src/nosql/table.dart
+++ b/dart/lib/src/nosql/table.dart
@@ -8,6 +8,7 @@
   SyncbaseTable._internal(_proxy, _parentFullName, relativeName)
       : super._internal(_proxy, _parentFullName, relativeName);
 
+  // row returns a row with the given key.
   SyncbaseRow row(String key) {
     return new SyncbaseRow._internal(_proxy, fullName, key);
   }
diff --git a/dart/lib/syncbase_client.dart b/dart/lib/syncbase_client.dart
index 3bbb764..bba7982 100644
--- a/dart/lib/syncbase_client.dart
+++ b/dart/lib/syncbase_client.dart
@@ -32,6 +32,7 @@
   return err != null && err.id != '';
 }
 
+// TODO(sadovsky): Add listApps method.
 class SyncbaseClient {
   final mojom.SyncbaseProxy _proxy;
 
@@ -48,7 +49,7 @@
     return _proxy.close(immediate: immediate);
   }
 
-  // app returns the app with the given name, which should not contain slashes.
+  // app returns the app with the given name.
   SyncbaseApp app(String name) => new SyncbaseApp._internal(_proxy, name);
 
   Future<mojom.Perms> getPermissions() async {
diff --git a/mojom/syncbase.mojom b/mojom/syncbase.mojom
index d4004dd..8d4a739 100644
--- a/mojom/syncbase.mojom
+++ b/mojom/syncbase.mojom
@@ -62,6 +62,7 @@
 };
 
 // TODO(sadovsky): Add schema version to all RPCs. See v.io/c/13734.
+// TODO(sadovsky): Add ListApps, ListDatabases, and ListTables methods.
 // All 'name' params are service-relative object names.
 
 // Error handling modeled after:
