diff --git a/lib/generators/console_simple_data.dart b/lib/generators/console_simple_data.dart
index d89f22250371d62b4983cf94ef80d7b4e405ca7e..7dfac3584cb2d2e2542b862c57d7d29c0dfba327 100644
--- a/lib/generators/console_simple_data.dart
+++ b/lib/generators/console_simple_data.dart
@@ -5,7 +5,7 @@
 List<String> data = [
   "bin/main.dart",
   "text",
-  "Cm1haW4oTGlzdDxTdHJpbmc+IGFyZ3MpIHsKICBwcmludCgnSGVsbG8gd29ybGQhJyk7Cn0K",
+  "bWFpbihMaXN0PFN0cmluZz4gYXJncykgewogIHByaW50KCdIZWxsbyB3b3JsZCEnKTsKfQo=",
   "pubspec.yaml",
   "text",
   """bmFtZToge3twcm9qZWN0TmFtZX19CnZlcnNpb246IDAuMC4xCmRlc2NyaXB0aW9uOiBBIHNpbXBs
diff --git a/lib/generators/server_appengine_data.dart b/lib/generators/server_appengine_data.dart
index 1ef5e74beb3900b4e119f36b732bb36d2542f78d..f555ab264e885bb97fd39ad9b0c2378344f1bc93 100644
--- a/lib/generators/server_appengine_data.dart
+++ b/lib/generators/server_appengine_data.dart
@@ -76,36 +76,37 @@ cXVlc3QocmVxdWVzdCk7CiAgICB9IGVsc2UgewogICAgICByZXF1ZXN0LnJlc3BvbnNlCiAgICAg
 ICAgLi5zdGF0dXNDb2RlID0gSHR0cFN0YXR1cy5NRVRIT0RfTk9UX0FMTE9XRUQKICAgICAgICAu
 LndyaXRlKCdVbnN1cHBvcnRlZCBIVFRQIHJlcXVlc3QgbWV0aG9kOiAke3JlcXVlc3QubWV0aG9k
 fS4nKQogICAgICAgIC4uY2xvc2UoKTsKICAgIH0KICB9KS5jYXRjaEVycm9yKChfKSA9PiByZXF1
-ZXN0LnJlc3BvbnNlCiAgICAgIC4ud3JpdGUoJ0ZhaWxlZCBoYW5kbGluZyByZXF1ZXN0OiAke3Jl
-cXVlc3QudG9TdHJpbmcoKX0uJykKICAgICAgLi5jbG9zZSgpKTsKfQoKLy8vIEdFVCByZXF1ZXN0
-IGhhbmRsZXIuCi8vLwovLy8gUGFyc2VzIHRoZSB1cmwgdG8gZGV0ZXJtaW5lIHdoYXQgY29tbWFu
-ZCB0byBydW4gYW5kIHRoZSBjb3JyZXNwb25kaW5nCi8vLyBpbnB1dCBkYXRhLgpoYW5kbGVHZXRS
-ZXF1ZXN0KEh0dHBSZXF1ZXN0IHJlcXVlc3QpIHsKICBIdHRwUmVzcG9uc2UgcmVzcG9uc2UgPSBy
-ZXF1ZXN0LnJlc3BvbnNlOwogIC8vIERldGVybWluZSBjb21tYW5kLgogIGlmIChyZXF1ZXN0LnVy
-aS5wYXRoID09ICcvd3JpdGVfY2FjaGUnKSB7CiAgICAvLyBHZXQgdGhlIHBhcnNlZCBxdWVyeSBz
-dHJpbmcuCiAgICBNYXA8U3RyaW5nLCBTdHJpbmc+IHF1ZXJ5TWFwID0gcmVxdWVzdC51cmkucXVl
-cnlQYXJhbWV0ZXJzOwogICAgLy8gVXBkYXRlIHRoZSBjYWNoZSB3aXRoIHRoZSBnaXZlbiBrZXkv
-dmFsdWUgcGFpcnMuCiAgICByZXNwb25zZS53cml0ZWxuKCdVcGRhdGluZyBjYWNoZSB3aXRoICR7
-cXVlcnlNYXAubGVuZ3RofSB2YWx1ZShzKS4nKTsKICAgIHJlc3BvbnNlLndyaXRlbG4oJycpOwog
-ICAgY2FjaGUud3JpdGUocmVzcG9uc2UsIHF1ZXJ5TWFwKTsKICB9IGVsc2UgaWYgKHJlcXVlc3Qu
-dXJpLnBhdGggPT0gJy9yZWFkX2NhY2hlJykgewogICAgLy8gSWYgbm8gcXVlcnkgc3RyaW5nIGlz
-IGdpdmVuIHJldHVybiB0aGUgZGVmYXVsdCBrZXkncyB2YWx1ZS4KICAgIGlmICghcmVxdWVzdC51
-cmkuaGFzUXVlcnkpIHsKICAgICAgcmVzcG9uc2Uud3JpdGVsbignUmVhZGluZyBkZWZhdWx0IHZh
-bHVlLCBzaW5jZSBubyBrZXlzIHByb3ZpZGVkLicpOwogICAgICByZXNwb25zZS53cml0ZWxuKCcn
-KTsKICAgICAgY2FjaGUucmVhZChyZXNwb25zZSwgW2NhY2hlLkRFRkFVTFRfS0VZXSk7CiAgICAg
-IHJldHVybjsKICAgIH0KICAgIC8vIEdldCB0aGUgcGFyc2VkIHF1ZXJ5IHN0cmluZy4KICAgIE1h
-cDxTdHJpbmcsIFN0cmluZz4gcXVlcnlNYXAgPSByZXF1ZXN0LnVyaS5xdWVyeVBhcmFtZXRlcnM7
-CiAgICAvLyBSZWFkIG91dCB0aGUgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGtleXMgaW4g
-dGhlIHF1ZXJ5IHN0cmluZy4KICAgIHJlc3BvbnNlLndyaXRlbG4oJ1JlYWRpbmcgJHtxdWVyeU1h
-cC5sZW5ndGh9IHZhbHVlKHMpIGZyb20gY2FjaGUuJyk7CiAgICByZXNwb25zZS53cml0ZWxuKCcn
-KTsKICAgIGNhY2hlLnJlYWQocmVzcG9uc2UsIHF1ZXJ5TWFwLmtleXMpOwogIH0gZWxzZSBpZiAo
-cmVxdWVzdC51cmkucGF0aCA9PSAnL2NsZWFyX2NhY2hlJykgewogICAgLy8gUmVpbnRpYWxpemUg
-dGhlIGNhY2hlLiBUaGlzIGNsZWFycyBhbGwgdmFsdWVzIGFuZCByZXNldHMgdGhlIGRlZmF1bHQu
-CiAgICBjYWNoZS5jbGVhcigpCiAgICAgIC50aGVuKChfKSA9PiByZXNwb25zZS53cml0ZWxuKCdD
-bGVhcmVkIGNhY2hlIScpKQogICAgICAud2hlbkNvbXBsZXRlKHJlc3BvbnNlLmNsb3NlKTsKICB9
-IGVsc2UgewogICAgLy8gU2VydmUgc29tZSBzdGF0aWMgY29udGVudC4gVGhpcyBtdXN0IGJlIGxv
-Y2F0ZWQgaW4gJ2J1aWxkL3dlYicgb3Igc29tZQogICAgLy8gc3ViZGlyZWN0b3J5IG9mICdidWls
-ZC93ZWInLgogICAgY29udGV4dC5hc3NldHMuc2VydmUoJy91c2FnZS5odG1sJyk7CiAgfQp9Cg==""",
+ZXN0LnJlc3BvbnNlCiAgICAuLndyaXRlKCdGYWlsZWQgaGFuZGxpbmcgcmVxdWVzdDogJHtyZXF1
+ZXN0LnRvU3RyaW5nKCl9LicpCiAgICAuLmNsb3NlKCkpOwp9CgovLy8gR0VUIHJlcXVlc3QgaGFu
+ZGxlci4KLy8vCi8vLyBQYXJzZXMgdGhlIHVybCB0byBkZXRlcm1pbmUgd2hhdCBjb21tYW5kIHRv
+IHJ1biBhbmQgdGhlIGNvcnJlc3BvbmRpbmcKLy8vIGlucHV0IGRhdGEuCmhhbmRsZUdldFJlcXVl
+c3QoSHR0cFJlcXVlc3QgcmVxdWVzdCkgewogIEh0dHBSZXNwb25zZSByZXNwb25zZSA9IHJlcXVl
+c3QucmVzcG9uc2U7CiAgLy8gRGV0ZXJtaW5lIGNvbW1hbmQuCiAgaWYgKHJlcXVlc3QudXJpLnBh
+dGggPT0gJy93cml0ZV9jYWNoZScpIHsKICAgIC8vIEdldCB0aGUgcGFyc2VkIHF1ZXJ5IHN0cmlu
+Zy4KICAgIE1hcDxTdHJpbmcsIFN0cmluZz4gcXVlcnlNYXAgPSByZXF1ZXN0LnVyaS5xdWVyeVBh
+cmFtZXRlcnM7CiAgICAvLyBVcGRhdGUgdGhlIGNhY2hlIHdpdGggdGhlIGdpdmVuIGtleS92YWx1
+ZSBwYWlycy4KICAgIHJlc3BvbnNlLndyaXRlbG4oJ1VwZGF0aW5nIGNhY2hlIHdpdGggJHtxdWVy
+eU1hcC5sZW5ndGh9IHZhbHVlKHMpLicpOwogICAgcmVzcG9uc2Uud3JpdGVsbignJyk7CiAgICBj
+YWNoZS53cml0ZShyZXNwb25zZSwgcXVlcnlNYXApOwogIH0gZWxzZSBpZiAocmVxdWVzdC51cmku
+cGF0aCA9PSAnL3JlYWRfY2FjaGUnKSB7CiAgICAvLyBJZiBubyBxdWVyeSBzdHJpbmcgaXMgZ2l2
+ZW4gcmV0dXJuIHRoZSBkZWZhdWx0IGtleSdzIHZhbHVlLgogICAgaWYgKCFyZXF1ZXN0LnVyaS5o
+YXNRdWVyeSkgewogICAgICByZXNwb25zZS53cml0ZWxuKCdSZWFkaW5nIGRlZmF1bHQgdmFsdWUs
+IHNpbmNlIG5vIGtleXMgcHJvdmlkZWQuJyk7CiAgICAgIHJlc3BvbnNlLndyaXRlbG4oJycpOwog
+ICAgICBjYWNoZS5yZWFkKHJlc3BvbnNlLCBbY2FjaGUuREVGQVVMVF9LRVldKTsKICAgICAgcmV0
+dXJuOwogICAgfQogICAgLy8gR2V0IHRoZSBwYXJzZWQgcXVlcnkgc3RyaW5nLgogICAgTWFwPFN0
+cmluZywgU3RyaW5nPiBxdWVyeU1hcCA9IHJlcXVlc3QudXJpLnF1ZXJ5UGFyYW1ldGVyczsKICAg
+IC8vIFJlYWQgb3V0IHRoZSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byB0aGUga2V5cyBpbiB0aGUg
+cXVlcnkgc3RyaW5nLgogICAgcmVzcG9uc2Uud3JpdGVsbignUmVhZGluZyAke3F1ZXJ5TWFwLmxl
+bmd0aH0gdmFsdWUocykgZnJvbSBjYWNoZS4nKTsKICAgIHJlc3BvbnNlLndyaXRlbG4oJycpOwog
+ICAgY2FjaGUucmVhZChyZXNwb25zZSwgcXVlcnlNYXAua2V5cyk7CiAgfSBlbHNlIGlmIChyZXF1
+ZXN0LnVyaS5wYXRoID09ICcvY2xlYXJfY2FjaGUnKSB7CiAgICAvLyBSZWludGlhbGl6ZSB0aGUg
+Y2FjaGUuIFRoaXMgY2xlYXJzIGFsbCB2YWx1ZXMgYW5kIHJlc2V0cyB0aGUgZGVmYXVsdC4KICAg
+IGNhY2hlCiAgICAgICAgLmNsZWFyKCkKICAgICAgICAudGhlbigoXykgPT4gcmVzcG9uc2Uud3Jp
+dGVsbignQ2xlYXJlZCBjYWNoZSEnKSkKICAgICAgICAud2hlbkNvbXBsZXRlKHJlc3BvbnNlLmNs
+b3NlKTsKICB9IGVsc2UgewogICAgLy8gU2VydmUgc29tZSBzdGF0aWMgY29udGVudC4gVGhpcyBt
+dXN0IGJlIGxvY2F0ZWQgaW4gJ2J1aWxkL3dlYicgb3Igc29tZQogICAgLy8gc3ViZGlyZWN0b3J5
+IG9mICdidWlsZC93ZWInLgogICAgY29udGV4dC5hc3NldHMuc2VydmUoJy91c2FnZS5odG1sJyk7
+CiAgfQp9Cg==""",
   "build/web/usage.html",
   "text",
   """PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KICA8aGVhZD4KICAJPG1ldGEgY2hhcnNldD0idXRmLTgi
diff --git a/lib/generators/server_shelf_data.dart b/lib/generators/server_shelf_data.dart
index a712582ad6f6ab5d2c987b00d35fb43bdd0d0ca3..a7ca88fdedd6e178a2d0374928183cd937110340 100644
--- a/lib/generators/server_shelf_data.dart
+++ b/lib/generators/server_shelf_data.dart
@@ -52,18 +52,18 @@ bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKaW1wb3J0ICdk
 YXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTphcmdzL2FyZ3MuZGFydCc7CmltcG9ydCAncGFja2Fn
 ZTpzaGVsZi9zaGVsZi5kYXJ0JyBhcyBzaGVsZjsKaW1wb3J0ICdwYWNrYWdlOnNoZWxmL3NoZWxm
 X2lvLmRhcnQnIGFzIGlvOwoKdm9pZCBtYWluKExpc3Q8U3RyaW5nPiBhcmdzKSB7CiAgdmFyIHBh
-cnNlciA9IG5ldyBBcmdQYXJzZXIoKQogICAgICAuLmFkZE9wdGlvbigncG9ydCcsIGFiYnI6ICdw
-JywgZGVmYXVsdHNUbzogJzgwODAnKTsKCiAgdmFyIHJlc3VsdCA9IHBhcnNlci5wYXJzZShhcmdz
-KTsKCiAgdmFyIHBvcnQgPSBpbnQucGFyc2UocmVzdWx0Wydwb3J0J10sIG9uRXJyb3I6ICh2YWwp
-IHsKICAgIHN0ZG91dC53cml0ZWxuKCdDb3VsZCBub3QgcGFyc2UgcG9ydCB2YWx1ZSAiJHZhbCIg
-aW50byBhIG51bWJlci4nKTsKICAgIGV4aXQoMSk7CiAgfSk7CgogIHZhciBoYW5kbGVyID0gY29u
-c3Qgc2hlbGYuUGlwZWxpbmUoKQogICAgICAuYWRkTWlkZGxld2FyZShzaGVsZi5sb2dSZXF1ZXN0
-cygpKQogICAgICAuYWRkSGFuZGxlcihfZWNob1JlcXVlc3QpOwoKICBpby5zZXJ2ZShoYW5kbGVy
-LCAnbG9jYWxob3N0JywgcG9ydCkudGhlbigoc2VydmVyKSB7CiAgICBwcmludCgnU2VydmluZyBh
-dCBodHRwOi8vJHtzZXJ2ZXIuYWRkcmVzcy5ob3N0fToke3NlcnZlci5wb3J0fScpOwogIH0pOwp9
-CgpzaGVsZi5SZXNwb25zZSBfZWNob1JlcXVlc3Qoc2hlbGYuUmVxdWVzdCByZXF1ZXN0KSB7CiAg
-cmV0dXJuIG5ldyBzaGVsZi5SZXNwb25zZS5vaygnUmVxdWVzdCBmb3IgIiR7cmVxdWVzdC51cmx9
-IicpOwp9Cg==""",
+cnNlciA9IG5ldyBBcmdQYXJzZXIoKQogICAgLi5hZGRPcHRpb24oJ3BvcnQnLCBhYmJyOiAncCcs
+IGRlZmF1bHRzVG86ICc4MDgwJyk7CgogIHZhciByZXN1bHQgPSBwYXJzZXIucGFyc2UoYXJncyk7
+CgogIHZhciBwb3J0ID0gaW50LnBhcnNlKHJlc3VsdFsncG9ydCddLCBvbkVycm9yOiAodmFsKSB7
+CiAgICBzdGRvdXQud3JpdGVsbignQ291bGQgbm90IHBhcnNlIHBvcnQgdmFsdWUgIiR2YWwiIGlu
+dG8gYSBudW1iZXIuJyk7CiAgICBleGl0KDEpOwogIH0pOwoKICB2YXIgaGFuZGxlciA9IGNvbnN0
+IHNoZWxmLlBpcGVsaW5lKCkKICAgICAgLmFkZE1pZGRsZXdhcmUoc2hlbGYubG9nUmVxdWVzdHMo
+KSkKICAgICAgLmFkZEhhbmRsZXIoX2VjaG9SZXF1ZXN0KTsKCiAgaW8uc2VydmUoaGFuZGxlciwg
+J2xvY2FsaG9zdCcsIHBvcnQpLnRoZW4oKHNlcnZlcikgewogICAgcHJpbnQoJ1NlcnZpbmcgYXQg
+aHR0cDovLyR7c2VydmVyLmFkZHJlc3MuaG9zdH06JHtzZXJ2ZXIucG9ydH0nKTsKICB9KTsKfQoK
+c2hlbGYuUmVzcG9uc2UgX2VjaG9SZXF1ZXN0KHNoZWxmLlJlcXVlc3QgcmVxdWVzdCkgewogIHJl
+dHVybiBuZXcgc2hlbGYuUmVzcG9uc2Uub2soJ1JlcXVlc3QgZm9yICIke3JlcXVlc3QudXJsfSIn
+KTsKfQo=""",
   "pubspec.yaml",
   "text",
   """bmFtZTogJ3t7cHJvamVjdE5hbWV9fScKdmVyc2lvbjogMC4wLjEKZGVzY3JpcHRpb246IEEgd2Vi
diff --git a/lib/src/cli_app.dart b/lib/src/cli_app.dart
index 02d9eff29f050f3168a82c2bc66917269f6e5bb5..85c251304b2aa60d6a0a99f579f9eabbcc23fd8e 100644
--- a/lib/src/cli_app.dart
+++ b/lib/src/cli_app.dart
@@ -98,8 +98,8 @@ class CliApp {
     if (options['help'] || args.isEmpty) {
       // Prompt to opt into advanced analytics.
       if (!analytics.hasSetOptIn) {
-        _out(
-            """Welcome to Stagehand! We collect anonymous usage statistics and crash reports in
+        _out("""
+Welcome to Stagehand! We collect anonymous usage statistics and crash reports in
 order to improve the tool (http://goo.gl/6wsncI). Would you like to opt-in to
 additional analytics to help us improve Stagehand [y/yes/no]? """);
         io.stdout.flush();
diff --git a/tool/grind.dart b/tool/grind.dart
index 56114892a27f19690a09509fd20a0a5715d91d2d..8d43e3eefa5cc7cf216d005dab4107575528bf4d 100644
--- a/tool/grind.dart
+++ b/tool/grind.dart
@@ -16,8 +16,7 @@ final RegExp _binaryFileTypes = new RegExp(
 
 main(List<String> args) => grind(args);
 
-@Task('Concatenate the template files into data files'
-    ' that the generators can consume')
+@Task('Concatenate the template files into runtime data files')
 void build() {
   stagehand.generators.forEach((generator) {
     _concatenateFiles(