diff --git a/go/src/v.io/x/playground/bundles/fortune/src/client/client.js b/go/src/v.io/x/playground/bundles/fortune/src/client/client.js
index 5f6974e..c13afd6 100644
--- a/go/src/v.io/x/playground/bundles/fortune/src/client/client.js
+++ b/go/src/v.io/x/playground/bundles/fortune/src/client/client.js
@@ -14,7 +14,7 @@
   if (err) { return error(err); }
 
   var ctx = rt.getContext();
-  var client = rt.newClient();
+  var client = rt.getClient();
 
   console.info('Binding to service');
   retryBindTo(ctx, client, function(err, fortuneService) {
diff --git a/go/src/v.io/x/playground/bundles/fortune/src/server/server.js b/go/src/v.io/x/playground/bundles/fortune/src/server/server.js
index aabcb7b..6aca4e6 100644
--- a/go/src/v.io/x/playground/bundles/fortune/src/server/server.js
+++ b/go/src/v.io/x/playground/bundles/fortune/src/server/server.js
@@ -50,9 +50,8 @@
 
 // Create a Vanadium runtime using the configuration
 vanadium.init().then(function(rt) {
-  var server = rt.newServer();
   // Serve the fortune server under a name. Serve returns a Promise object
-  server.serve('bakery/cookie/fortune', fortuneService).then(function() {
+  rt.newServer('bakery/cookie/fortune', fortuneService).then(function() {
     console.log('Fortune server serving under: bakery/cookie/fortune');
   }).catch(function(err) {
     console.error('Failed to serve the fortune server because:\n', err);
diff --git a/go/src/v.io/x/playground/testdata/src/ping/ping.js b/go/src/v.io/x/playground/testdata/src/ping/ping.js
index 4b1a374..99e8a03 100644
--- a/go/src/v.io/x/playground/testdata/src/ping/ping.js
+++ b/go/src/v.io/x/playground/testdata/src/ping/ping.js
@@ -10,7 +10,7 @@
   var ctx = rt.getContext();
 
   console.log('Binding to service');
-  rt.newClient().bindTo(ctx, 'pingpong', function(err, s) {
+  rt.getClient().bindTo(ctx, 'pingpong', function(err, s) {
     if (err) throw err;
 
     console.log('Pinging');
diff --git a/go/src/v.io/x/playground/testdata/src/pong/pong.js b/go/src/v.io/x/playground/testdata/src/pong/pong.js
index 5b85bef..2ae1a2f 100644
--- a/go/src/v.io/x/playground/testdata/src/pong/pong.js
+++ b/go/src/v.io/x/playground/testdata/src/pong/pong.js
@@ -23,7 +23,7 @@
   if (err) throw err;
 
   console.log('Starting server');
-  rt.newServer().serve('pingpong', pingPongService, function(err) {
+  rt.newServer('pingpong', pingPongService, function(err) {
     if (err) throw err;
 
     console.log('Serving pingpong');
