upgrades for dart 2
diff --git a/.gitignore b/.gitignore
index 07781a6..db88a57 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@
 packages

 pubspec.lock

 .pub/

+.dart_tool/

 docs/

 build/

 .settings/

diff --git a/.travis.yml b/.travis.yml
index 5c23091..ad23559 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,6 @@
 
 dart:
   - dev
-  - stable
 
 before_install:
   - export DISPLAY=:99.0
diff --git a/lib/forwarder.dart b/lib/forwarder.dart
index a136237..298d9b4 100644
--- a/lib/forwarder.dart
+++ b/lib/forwarder.dart
@@ -5,7 +5,7 @@
 
 import 'dart:async'
     show Future, Stream, StreamController, StreamSink, StreamSubscription;
-import 'dart:convert' show JSON;
+import 'dart:convert' show jsonDecode, jsonEncode;
 
 import 'package:logging/logging.dart' show Logger;
 
@@ -48,7 +48,7 @@
   }
 
   Future _onClientDataHandler(String data) async {
-    var json = JSON.decode(data);
+    var json = jsonDecode(data);
     var response = {'id': json['id']};
     _log.info('Forwarding to debugger: $data');
     try {
@@ -87,7 +87,7 @@
       response['error'] = e.toString();
     }
     _log.info('forwarding response: $response');
-    _out.add(JSON.encode(response));
+    _out.add(jsonEncode(response));
   }
 
   void _onClientErrorHandler(Object error, StackTrace stackTrace) {
@@ -110,7 +110,7 @@
     if (event.params != null) {
       json['params'] = event.params;
     }
-    _out.add(JSON.encode(json));
+    _out.add(jsonEncode(json));
   }
 
   void _onDebuggerErrorHandler(Object error, StackTrace stackTrace) {
diff --git a/lib/multiplex.dart b/lib/multiplex.dart
index 992564c..3ffa326 100644
--- a/lib/multiplex.dart
+++ b/lib/multiplex.dart
@@ -4,7 +4,7 @@
 library wip.multiplex;
 
 import 'dart:async' show Future;
-import 'dart:convert' show JSON;
+import 'dart:convert' show jsonEncode;
 import 'dart:io' show HttpServer, InternetAddress;
 
 import 'package:logging/logging.dart' show Logger;
@@ -96,7 +96,7 @@
   Future<shelf.Response> _json(shelf.Request request) async {
     var path = request.url.pathSegments;
     if (path.length == 1 && path[0] == 'json') {
-      var resp = JSON.encode(await chrome.getTabs(), toEncodable: _jsonEncode);
+      var resp = jsonEncode(await chrome.getTabs(), toEncodable: _jsonEncode);
       _log.info('json: $resp');
       return new shelf.Response.ok(resp,
           headers: {'Content-Type': 'application/json'});
diff --git a/lib/webkit_inspection_protocol.dart b/lib/webkit_inspection_protocol.dart
index 1596c1b..099664f 100644
--- a/lib/webkit_inspection_protocol.dart
+++ b/lib/webkit_inspection_protocol.dart
@@ -43,8 +43,8 @@
   // TODO(DrMarcII): consider changing this to return Stream<ChromeTab>.
   Future<List<ChromeTab>> getTabs() async {
     var response = await getUrl('/json');
-    var respBody = await UTF8.decodeStream(response);
-    List<Map<String, String>> data = JSON.decode(respBody);
+    var respBody = await utf8.decodeStream(response);
+    List<Map<String, String>> data = jsonDecode(respBody);
     return data.map((m) => new ChromeTab(m)).toList();
   }
 
@@ -171,7 +171,7 @@
     _runtime = new WipRuntime(this);
 
     _ws.listen((data) {
-      var json = JSON.decode(data);
+      var json = jsonDecode(data);
 
       if (json.containsKey('id')) {
         _handleResponse(json);
@@ -197,7 +197,7 @@
       json['params'] = params;
     }
     _completers[json['id']] = completer;
-    _ws.add(JSON.encode(json));
+    _ws.add(jsonEncode(json));
     return completer.future;
   }
 
diff --git a/pubspec.yaml b/pubspec.yaml
index 1fd13bf..b31b86e 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -8,7 +8,8 @@
 - Marc Fisher <fisherii@google.com>
 
 environment:
-  sdk: '>=1.10.0 <2.0.0'
+  sdk: '>=2.0.0-dev.17.0 <2.0.0'
+
 dependencies:
   args: '>=0.13.0 <2.0.0'
   logging: '^0.11.0'