diff --git a/app.yaml b/app.yaml
index 0063637..d28bc3c 100644
--- a/app.yaml
+++ b/app.yaml
@@ -14,10 +14,10 @@
 - url: /help
   static_files: help.html
   upload: help.html
-- url: /render.js
-  static_files: render.js
-  upload: render.js
-- url: /(.*)\.json
+- url: /([^/]*).js
+  static_files: \1.js
+  upload: (.*).js
+- url: /([^/]*)\.json
   static_files: \1.json
   mime_type: text/plain
   upload: (.*\.json)
diff --git a/render.html b/render.html
index b318326..978739c 100644
--- a/render.html
+++ b/render.html
@@ -12,7 +12,8 @@
   }
   </style>
   <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
-  <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+  <script src="dygraph-combined.js"></script>
+  <script src="https://www.google.com/jsapi"></script>
   <script>
   google.load('visualization', '1.0', {
     packages: ['table', 'corechart', 'treemap', 'annotatedtimeline']
diff --git a/render.js b/render.js
index 0f55014..d585072 100644
--- a/render.js
+++ b/render.js
@@ -572,20 +572,18 @@
     }
   }
   var chartops = args.get('chart');
+  var t;
   if (chartops) {
     grid = fillNullsWithZero(grid);
-    var datatable = dataToGvizTable(grid);
     var el = document.getElementById('vizchart');
     $(el).height(window.innerHeight).width(window.innerWidth);
     var options = {};
     if (args.get('title')) {
       options.title = args.get('title');
     }
-    var t;
     if (chartops == 'stackedarea' || chartops == 'stacked') {
       t = new google.visualization.AreaChart(el);
       options.isStacked = true;
-      t.draw(datatable, options);
     } else if (chartops == 'column') {
       t = new google.visualization.ColumnChart(el);
     } else if (chartops == 'bar') {
@@ -596,17 +594,22 @@
       t = new google.visualization.CandlestickChart(el);
     } else if (chartops == 'timeline') {
       t = new google.visualization.AnnotatedTimeLine(el);
+    } else if (chartops == 'dygraph' || chartops == 'dygraph+errors') {
+      t = new Dygraph.GVizChart(el);
+      options.showRoller = true;
+      if (chartops == 'dygraph+errors') {
+	options.errorBars = true;
+      }
     } else {
       // default to a line chart if unrecognized type
       t = new google.visualization.LineChart(el);
     }
-    t.draw(datatable, options);
   } else {
-    var datatable = dataToGvizTable(grid);
     var el = document.getElementById('viztable');
-    var t = new google.visualization.Table(el);
-    t.draw(datatable, {});
+    t = new google.visualization.Table(el);
   }
+  var datatable = dataToGvizTable(grid);
+  t.draw(datatable, options);
 }
 
 
