diff --git a/Makefile b/Makefile
index b842125..ce984f4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 SHELL := /bin/bash -euo pipefail
 PWD := $(shell pwd)
 V23_GOPATH := $(shell echo `v23 run env | grep GOPATH | cut -d\= -f2`)
-DART_FILES := $(shell find dart/bin dart/lib dart/test sky_echo/lib -name "*.dart" -not -path "dart/lib/gen/*")
+DART_FILES := $(shell find dart/bin dart/lib dart/test -name "*.dart" -not -path "dart/lib/gen/*")
 GO_FILES := $(shell find go/src -name "*.go")
 V23_GO_FILES := $(shell find $(V23_ROOT) -name "*.go")
 
@@ -167,17 +167,12 @@
 	# TODO(nlacasse): Fix dart mojom binding generator so it does not produce
 	# files that violate dartanalyzer.  For now, we use "grep -v" to hide all
 	# warnings from *.mojom.dart files.
-	cd dart && dartanalyzer bin/*.dart lib/*.dart test/*.dart | grep -v "\[hint\] Dead code.*\.mojom\.dart"
-	cd sky_echo && dartanalyzer lib/*.dart
+	cd dart && dartanalyzer bin/*.dart lib/*.dart test/*.dart | grep -v '\.mojom\.dart'
 
 # Installs dart dependencies.
 dart/packages: dart/pubspec.yaml
 	cd dart && pub get
 
-# Installs dart dependencies.
-sky_echo/packages: sky_echo/pubspec.yaml
-	cd sky_echo && pub get
-
 .PHONY: run-syncbase-example
 run-syncbase-example: $(ETHER_BUILD_DIR)/syncbase_server.mojo dart/packages dart/lib/gen/dart-pkg/mojom/lib/mojo/syncbase.mojom.dart | env-check
 	$(MOJO_DIR)/src/mojo/devtools/common/mojo_run --config-file $(PWD)/mojoconfig $(MOJO_SHELL_FLAGS) $(MOJO_ANDROID_FLAGS) https://mojo.v.io/syncbase_example.dart
@@ -187,7 +182,7 @@
 	$(MOJO_DIR)/src/mojo/devtools/common/mojo_run --config-file $(PWD)/mojoconfig $(MOJO_SHELL_FLAGS) $(MOJO_ANDROID_FLAGS) https://mojo.v.io/echo_example.dart
 
 .PHONY: run-sky-echo
-run-sky-echo: $(ETHER_BUILD_DIR)/echo_server.mojo sky_echo/packages dart/lib/gen/dart-pkg/mojom/lib/mojo/echo.mojom.dart | env-check
+run-sky-echo: $(ETHER_BUILD_DIR)/echo_server.mojo dart/packages dart/lib/gen/dart-pkg/mojom/lib/mojo/echo.mojom.dart | env-check
 	$(MOJO_DIR)/src/mojo/devtools/common/mojo_run --config-file $(PWD)/sky_echo/mojoconfig $(MOJO_SHELL_FLAGS) $(MOJO_ANDROID_FLAGS) 'mojo:window_manager https://mojo.v.io/sky_echo/lib/main.dart'
 
 # TODO(nlacasse): The tests are currently flaky due to
diff --git a/dart/bin/echo_example.dart b/dart/bin/echo_example.dart
index 7bd205c..4d62e38 100755
--- a/dart/bin/echo_example.dart
+++ b/dart/bin/echo_example.dart
@@ -1,6 +1,6 @@
 #!mojo mojo:dart_content_handler
-import 'package:ether/echo_client.dart' show EchoClient;
 import 'package:ether/initialized_application.dart' show InitializedApplication;
+import 'package:ether/echo_client.dart' show EchoClient;
 
 main(List args) async {
   InitializedApplication app = new InitializedApplication.fromHandle(args[0]);
@@ -8,7 +8,7 @@
 
   String url = 'https://mojo.v.io/echo_server.mojo';
 
-  EchoClient c = new EchoClient(app.connectToService, url);
+  EchoClient c = new EchoClient(app, url);
 
   String input = 'foobar';
   String output = await c.echo(input);
diff --git a/dart/lib/echo_client.dart b/dart/lib/echo_client.dart
index d9239b7..a32e9b4 100644
--- a/dart/lib/echo_client.dart
+++ b/dart/lib/echo_client.dart
@@ -2,29 +2,29 @@
 
 import 'dart:async';
 
-import 'package:mojo/bindings.dart' as bindings;
+import 'package:mojo/application.dart' show Application;
 
 import 'gen/dart-gen/mojom/lib/mojo/echo.mojom.dart' as mojom;
 
-typedef void ConnectToServiceFn(String url, bindings.ProxyBase proxy);
-
 class EchoClient {
+  final Application _app;
   final mojom.EchoProxy _proxy;
+  final String url;
 
   Future close({bool immediate: false}) {
     return _proxy.close(immediate: immediate);
   }
 
-  EchoClient(ConnectToServiceFn cts, String url)
-      : _proxy = new mojom.EchoProxy.unbound() {
+  EchoClient(this._app, this.url) : _proxy = new mojom.EchoProxy.unbound() {
     print('connecting to $url');
-    cts(url, _proxy);
+    _app.connectToService(url, _proxy);
     print('connected');
   }
 
   Future<String> echo(String s) async {
     print('calling echoString($s)');
     mojom.EchoEchoStringResponseParams v = await _proxy.ptr.echoString(s);
+
     String output = v.value;
     print('got echo result: $output');
     return output;
diff --git a/dart/test/echo_test.dart b/dart/test/echo_test.dart
index 435fbbd..00101eb 100644
--- a/dart/test/echo_test.dart
+++ b/dart/test/echo_test.dart
@@ -13,7 +13,7 @@
 
   String url = 'https://mojo.v.io/echo_server.mojo';
 
-  EchoClient c = new EchoClient(app.connectToService, url);
+  EchoClient c = new EchoClient(app, url);
 
   tearDown(() {
     app.resetConnections();
diff --git a/sky_echo/lib/main.dart b/sky_echo/lib/main.dart
index 0838e0c..e461537 100644
--- a/sky_echo/lib/main.dart
+++ b/sky_echo/lib/main.dart
@@ -1,61 +1,97 @@
-import 'dart:async';
-
-import 'package:sky/mojo/embedder.dart' show embedder;
 import 'package:sky/widgets.dart';
 
-import '../../dart/lib/echo_client.dart' show EchoClient;
-
-log(String msg) {
-  DateTime now = new DateTime.now();
-  print('$now $msg');
+class HelloWorldApp extends App {
+  Widget build() {
+    return new Center(child: new Text('Hello, world!'));
+  }
 }
 
+void main() {
+  runApp(new HelloWorldApp());
+}
+
+
+/*
+import 'package:sky/widgets.dart';
+
+import 'dart:async';
+
+import 'package:mojo/core.dart';
+import 'package:mojo/bindings.dart';
+import 'package:sky/mojo/embedder.dart' show embedder;
+
+import 'package:ether/echo_client.dart' show EchoClient;
+
 class EchoApp extends App {
-  final EchoClient _c;
+  EchoApp() : super();
 
-  EchoApp()
-      : _c = new EchoClient(
-            embedder.connectToService, 'https://mojo.v.io/echo_server.mojo');
-
-  int seq = 0;
-  String sendMsg = '';
+  EchoClient c = new EchoClient(app, 'https://mojo.v.io/echo_server.mojo');
+  String sentMsg = '';
   String recvMsg = '';
+  bool connected = false;
 
-  Future doEcho() async {
-    log('EchoApp.doEcho');
-    setState(() {
-      sendMsg = seq.toString();
-      recvMsg = '';
-    });
-    seq++;
-    log('setState sendMsg done');
+  void _connect() {
+    if (connected) return;
+    //embedder.connectToService('mojo:echo_server', echoProxy);
+    //embedder.connectToService('https://core.mojoapps.io/go_echo_server.mojo', echoProxy); // works with echo_server.mojo, but must use --enable-multiprocess for this one
+    embedder.connectToService('https://core.mojoapps.io/go_forward_echo_server.mojo', echoProxy);
 
-    String recvMsgAsync = await _c.echo(sendMsg);
-
-    setState(() {
-      recvMsg = recvMsgAsync;
-    });
-    log('setState recvMsg done');
+    connected = true;
   }
 
-  // TODO(sadovsky): I don't think Sky calls App.close().
+  Future doEcho({bool immediate: false}) async {
+    setState(() {
+      sendMsg = 'hello';
+    });
+    print('Sent message $sendMsg');
+
+    recvMsg = await c.echo(sendMsg);
+    _connect();
+    String msg = 'Hello ' + recvMsg;
+    setState(() {
+      sentMsg = msg;
+      print('Sending message $sentMsg');
+    });
+    try {
+      //final EchoEchoStringResponseParams result = await echoProxy.ptr.echoString(msg);
+      String endpoint = '/@5@wsh@172.17.166.74:33841@cbf4008c9abb8a430b1b455058e1e7ba@s@alexfandrianto@alexfandrianto0.mtv.corp.google.com-18361@@/mojo:go_echo_server/mojo::examples::Echo';
+      final ForwardEchoEchoForwardResponseParams result = await echoProxy.ptr.echoForward(msg, endpoint);
+
+      setState(() {
+        recvMsg = result.value;
+        print('Got message $recvMsg');
+      });
+    } catch(e) {
+      print('Error echoing: ' + e.toString());
+      return false;
+    }
+    return true;
+  }
+
   Future close({bool immediate: false}) async {
-    log('EchoApp.close');
-    return await _c.close(immediate: immediate);
+    await echoProxy.close(immediate: immediate);
+    return;
   }
 
   Widget build() {
     return new Container(
-        decoration:
-            const BoxDecoration(backgroundColor: const Color(0xFF00ACC1)),
-        child: new Flex([
-          new RaisedButton(child: new Text('doEcho'), onPressed: doEcho),
-          new Text('Sent message $sendMsg'),
-          new Text('Received message $recvMsg')
-        ], direction: FlexDirection.vertical));
+      decoration: const BoxDecoration(
+        backgroundColor: const Color(0xFF00ACC1)
+      ),
+      child: new Flex([
+        new RaisedButton(
+          child: new Text('Click here'),
+          onPressed: doEcho
+        ),
+        new Text('Sent message $sentMsg'),
+        new Text('Received message $recvMsg')
+      ],
+      direction: FlexDirection.vertical)
+    );
   }
 }
 
 void main() {
   runApp(new EchoApp());
 }
+*/
diff --git a/sky_echo/mojoconfig b/sky_echo/mojoconfig
index 36838cf..74d997d 100644
--- a/sky_echo/mojoconfig
+++ b/sky_echo/mojoconfig
@@ -6,10 +6,8 @@
       'host': 'https://mojo.v.io/',
       'mappings': [
         ('packages/', [
-          # For echo_client.dart.
-          '@{ETHER_DIR}/dart/packages',
           # For sky/widgets.dart.
-          '@{ETHER_DIR}/sky_echo/packages',
+          '@{ETHER_DIR}/sky_echo/packages'
         ]),
         ('', [
           # For echo_server.mojo.
@@ -24,7 +22,7 @@
       'mappings': [
         ('', [
           # For sky_viewer.mojo.
-          '@{SKY_BUILD_DIR}',
+          '@{SKY_BUILD_DIR}'
         ]),
       ],
     }
