diff --git a/README.md b/README.md
index 839ba4b..94e6055 100644
--- a/README.md
+++ b/README.md
@@ -4,16 +4,16 @@
 For example one can do:
 
 ``
-echo "Hi!" | p2b google/p2b/jane/console
+echo "Hi!" | p2b users/jane@google.com/chrome/p2b/console
 ``
 
 or
 
 ``
-cat cat.jpg | p2b -binary google/p2b/jane/image
+cat cat.jpg | p2b -binary users/jane@google.com/chrome/p2b/image
 ``
 
-where **google/p2b/jane** is the Object name where p2b service is running in the browser. The suffix **console** or **image** specifies what viewer should be used to display the data.
+where **users/jane@google.com/chrome/p2b** is the Object name where p2b service is running in the browser. The suffix **console** or **image** specifies what viewer should be used to display the data.
 
 Please see the help page inside the P2B application for detailed tutorials.
 
diff --git a/browser/pipe-viewers/builtin/console/panic/plugin.js b/browser/pipe-viewers/builtin/console/panic/plugin.js
index 5788a74..536d5af 100644
--- a/browser/pipe-viewers/builtin/console/panic/plugin.js
+++ b/browser/pipe-viewers/builtin/console/panic/plugin.js
@@ -4,7 +4,7 @@
 
 /*
  * Console is a Pipe Viewer that displays a text stream as unformatted text
- * @tutorial echo "Hello World" | p2b google/p2b/[name]/console/panic
+ * @tutorial echo "Hello World" | p2b users/jane@google.com/chrome/p2b/[name]/console/panic
  * @fileoverview
  */
 
diff --git a/browser/pipe-viewers/builtin/console/plugin.js b/browser/pipe-viewers/builtin/console/plugin.js
index d91dd87..001d9a4 100644
--- a/browser/pipe-viewers/builtin/console/plugin.js
+++ b/browser/pipe-viewers/builtin/console/plugin.js
@@ -4,7 +4,7 @@
 
 /*
  * Console is a Pipe Viewer that displays a text stream as unformatted text
- * @tutorial echo "Hello World" | p2b google/p2b/[name]/console
+ * @tutorial echo "Hello World" | p2b users/jane@google.com/chrome/p2b/[name]/console
  * @fileoverview
  */
 
diff --git a/browser/pipe-viewers/builtin/dev/null/plugin.js b/browser/pipe-viewers/builtin/dev/null/plugin.js
index abd615b..af0a33b 100644
--- a/browser/pipe-viewers/builtin/dev/null/plugin.js
+++ b/browser/pipe-viewers/builtin/dev/null/plugin.js
@@ -5,7 +5,7 @@
 /*
  * dev/null simply consumes the stream without taking any action on the data
  * or keeping it in memory
- * @tutorial echo "To the black hole!" | p2b google/p2b/[name]/dev/null
+ * @tutorial echo "To the black hole!" | p2b users/jane@google.com/chorme/p2b/[name]/dev/null
  * @fileoverview
  */
 
diff --git a/browser/pipe-viewers/builtin/dev/null/text/plugin.js b/browser/pipe-viewers/builtin/dev/null/text/plugin.js
index 5e31aef..816ecc1 100644
--- a/browser/pipe-viewers/builtin/dev/null/text/plugin.js
+++ b/browser/pipe-viewers/builtin/dev/null/text/plugin.js
@@ -5,7 +5,7 @@
 /*
  * similar to dev/null, it consumes the stream without keeping it in memory but
  * it tried to decode the steaming bytes as UTF-8 string first
- * @tutorial echo "To the black hole!" | p2b google/p2b/[name]/dev/null/text
+ * @tutorial echo "To the black hole!" | p2b users/jane@google.com/chrome/p2b/[name]/dev/null/text
  * @fileoverview
  */
 
diff --git a/browser/pipe-viewers/builtin/git/status/plugin.js b/browser/pipe-viewers/builtin/git/status/plugin.js
index e01df99..c591426 100644
--- a/browser/pipe-viewers/builtin/git/status/plugin.js
+++ b/browser/pipe-viewers/builtin/git/status/plugin.js
@@ -6,7 +6,7 @@
  * git/status is a Pipe Viewer that displays output of "git status --short"
  * in a graphical grid.
  * Only supported with Git's --short  flag.
- * @tutorial git status --short | p2b google/p2b/[name]/git/status
+ * @tutorial git status --short | p2b users/jane@google.com/chrome/p2b/[name]/git/status
  * @fileoverview
  */
 import { View } from 'view';
diff --git a/browser/pipe-viewers/builtin/image/plugin.js b/browser/pipe-viewers/builtin/image/plugin.js
index 895d284..15d677c 100644
--- a/browser/pipe-viewers/builtin/image/plugin.js
+++ b/browser/pipe-viewers/builtin/image/plugin.js
@@ -4,7 +4,7 @@
 
 /*
  * Image is a Pipe Viewer that displays an image
- * @tutorial cat image.jpg | p2b google/p2b/[name]/image
+ * @tutorial cat image.jpg | p2b users/jane@google.com/chrome/p2b/[name]/image
  * @fileoverview
  */
 
diff --git a/browser/pipe-viewers/builtin/vlog/plugin.js b/browser/pipe-viewers/builtin/vlog/plugin.js
index c11ebfd..bd72b8e 100644
--- a/browser/pipe-viewers/builtin/vlog/plugin.js
+++ b/browser/pipe-viewers/builtin/vlog/plugin.js
@@ -6,8 +6,8 @@
  * vlog is a Pipe Viewer that displays veyron logs in a graphical grid.
  * Please note that Veyron writes logs to stderr stream, in *nix systems 2>&1
  * can be used to redirect stderr to stdout which can be then piped to P2B.
- * @tutorial myVeyronServerd -v=3 2>&1 | p2b google/p2b/[name]/vlog
- * @tutorial cat logfile.txt | p2b google/p2b/[name]/vlog
+ * @tutorial myVeyronServerd -v=3 2>&1 | p2b users/jane@google.com/chrome/p2b/[name]/vlog
+ * @tutorial cat logfile.txt | p2b users/jane@google.com/chrome/p2b/[name]/vlog
  * @fileoverview
  */
 import { View } from 'view';
diff --git a/browser/services/pipe-to-browser-namespace.js b/browser/services/pipe-to-browser-namespace.js
index 13ab279..de1ec82 100644
--- a/browser/services/pipe-to-browser-namespace.js
+++ b/browser/services/pipe-to-browser-namespace.js
@@ -23,7 +23,8 @@
     var ctx = runtime.getContext().withTimeout(5000);
     ctx.waitUntilDone(function(){});
 
-    var globResult = namespace.glob(ctx, 'google/p2b/*');
+    var globPattern = namespace.join(runtime.accountName, 'p2b/*');
+    var globResult = namespace.glob(ctx, globPattern);
     var p2bServices = [];
     globResult.stream.on('data', (p2bServiceName) => {
       p2bServices.push(p2bServiceName.name);
diff --git a/browser/services/pipe-to-browser-server.js b/browser/services/pipe-to-browser-server.js
index 3996f40..e87af94 100644
--- a/browser/services/pipe-to-browser-server.js
+++ b/browser/services/pipe-to-browser-server.js
@@ -36,14 +36,16 @@
 state.init();
 
 /*
- * Publishes the p2b service under google/p2b/{name}
- * e.g. If name is "john-tablet", p2b service will be accessible under name:
- * 'google/p2b/john-tablet'
+ * Publishes the p2b service under users/jane@google.com/chrome/p2b/{name} e.g. If
+ * name is "john-tablet", p2b service will be accessible under name:
+ * 'users/jane@google.com/chrome/p2b/john-tablet'
  *
- * pipe() method can be invoked on any 'google/p2b/{name}/suffix' name where
- * suffix identifies the viewer that can format and display the stream data
- * e.g. 'google/p2b/john-tablet/console'.pipe() will display the incoming
- * data in a data table. See /app/viewer/ for a list of available viewers.
+ * pipe() method can be invoked on any
+ * 'users/jane@google.com/chrome/p2b/{name}/suffix' name where suffix identifies the
+ * viewer that can format and display the stream data e.g.
+ * 'users/jane@google.com/chrome/p2b/john-tablet/console'.pipe() will display the
+ * incoming data in a data table. See /app/viewer/ for a list of available
+ * viewers.
  * @param {string} name Name to publish the service under
  * @param {function} pipeRequestHandler A function that will be called when
  * a request to handle a pipe stream comes in.
@@ -112,7 +114,7 @@
 
   return vanadium.init().then((runtime) => {
     server = runtime.newServer();
-    var serviceName = 'google/p2b/' + name;
+    var serviceName = namespace.join(runtime.accountName, 'p2b', name);
 
     // TODO(nlacasee,sadovsky): Our current authorization policy never returns
     // any errors, i.e. everyone is authorized!
diff --git a/browser/views/help/component.html b/browser/views/help/component.html
index d3861ef..b6183fc 100644
--- a/browser/views/help/component.html
+++ b/browser/views/help/component.html
@@ -17,7 +17,7 @@
   <p>Now let's use the <span class="name">console</span> viewer. It can pretty much display anything, so it's a good one to start with</p>
   <p>In your Linux or Mac console run:</p>
   <pre class="code">echo "Hello World" | p2b {{publishedName}}/console</pre>
-  <p>P2B follows a basic <span class="mono">cmd | p2b google/p2b/[name]/[viewer]</span> pattern. Where <span class="mono">[name]</span> is what you publish the service under and <span class="mono">[viewer]</span> can be the name of a built-in viewer like <span class="mono">image</span> or <span class="mono">console</span> or a Url to a remote viewer that is a P2B plug-in.</p>
+  <p>P2B follows a basic <span class="mono">cmd | p2b users/jane@google.com/chrome/p2b/[name]/[viewer]</span> pattern. Where <span class="mono">[name]</span> is what you publish the service under and <span class="mono">[viewer]</span> can be the name of a built-in viewer like <span class="mono">image</span> or <span class="mono">console</span> or a Url to a remote viewer that is a P2B plug-in.</p>
   <h3>Built-in Viewers</h3>
   <p>In addition to the basic <span class="name">console</span> viewer, P2B is preloaded with the following viewers</p>
 
@@ -62,7 +62,7 @@
         if( this.serviceState && this.serviceState.published ) {
           return this.serviceState.fullServiceName
         } else {
-          return 'google/p2b/[name]';
+          return 'users/jane@google.com/chrome/p2b/[name]';
         }
       },
 
diff --git a/go/src/p2b/main.go b/go/src/p2b/main.go
index f630d50..da85dc2 100644
--- a/go/src/p2b/main.go
+++ b/go/src/p2b/main.go
@@ -29,13 +29,13 @@
 
   For example:
 
-	ls -l | p2b google/p2b/jane/console
+	ls -l | p2b users/jane@google.com/chrome/p2b/jane/console
 
 	or
 
-	cat cat.jpg | p2b google/p2b/jane/image
+	cat cat.jpg | p2b users/jane@google.com/chrome/p2b/jane/image
 
-  where <name> (google/p2b/jane) is the object name where p2b
+  where <name> (users/jane@google.com/chrome/p2b/jane) is the object name where p2b
   service is running in the browser. <viewer> (console, image) specifies what
   viewer should be used to display the data.
 
@@ -43,7 +43,7 @@
 
   For example many daemons may write log lines to stderr instead of stdout:
 
-  serverd -alsologtostderr=true 2>&1 | google/p2b/jane/vlog
+  serverd -alsologtostderr=true 2>&1 | users/jane@google.com/chrome/p2b/jane/vlog
 `
 
 func Usage() {
