diff --git a/.gitignore b/.gitignore
index aa56f32bf6a98af09bb16b9233853c4b006043f6..bdeb6e4839e1365917f275c1d9de1496fbed1de9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ packages
 pubspec.lock
 build
 .pub
+.settings/
diff --git a/.project b/.project
new file mode 100644
index 0000000000000000000000000000000000000000..51ef3695a575898a60d816b340b41b0ffbb84acf
--- /dev/null
+++ b/.project
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>stagehand</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.google.dart.tools.core.dartBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.google.dart.tools.core.dartNature</nature>
+	</natures>
+	<filteredResources>
+		<filter>
+			<id>1418751676225</id>
+			<name></name>
+			<type>30</type>
+			<matcher>
+				<id>com.google.dart.tools.core.packagesFolderMatcher</id>
+			</matcher>
+		</filter>
+	</filteredResources>
+</projectDescription>
diff --git a/lib/generators/appengineapp_data.dart b/lib/generators/appengineapp_data.dart
index bd7212038c2e7b7caf4b1ee6a898acc0295324b2..7479081258332882b6535044e468092f7a7d4269 100644
--- a/lib/generators/appengineapp_data.dart
+++ b/lib/generators/appengineapp_data.dart
@@ -3,6 +3,48 @@
 // license that can be found in the LICENSE file.
 
 List<String> data = [
+  "CHANGELOG.md",
+  "text",
+  """IyBDaGFuZ2Vsb2cKCiMjIDAuMC4xCgoqIEluaXRpYWwgdmVyc2lvbiwgY3JlYXRlZCBieSBTdGFn
+ZWhhbmQuCg==""",
+  "Dockerfile",
+  "text",
+  "RlJPTSBnb29nbGUvZGFydC1ydW50aW1lCg==",
+  "LICENSE",
+  "text",
+  """Q29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4KQWxsIHJpZ2h0cyByZXNlcnZlZC4K
+ClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
+b3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
+Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
+dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAgICAgbm90aWNlLCB0
+aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAg
+KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
+IGNvcHlyaWdodAogICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
+Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
+aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgICAqIE5laXRo
+ZXIgdGhlIG5hbWUgb2YgdGhlIDxvcmdhbml6YXRpb24+IG5vciB0aGUKICAgICAgbmFtZXMgb2Yg
+aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
+dHMKICAgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
+ciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
+T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECkFOWSBFWFBSRVNT
+IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
+RSBJTVBMSUVECldBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
+IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgPENP
+UFlSSUdIVCBIT0xERVI+IEJFIExJQUJMRSBGT1IgQU5ZCkRJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
+RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCihJTkNM
+VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
+UyBPUiBTRVJWSUNFUzsKTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
+IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECk9OIEFOWSBUSEVPUlkgT0YgTElBQklM
+SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCihJTkNM
+VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
+VEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
+SVRZIE9GIFNVQ0ggREFNQUdFLgo=""",
+  "README.md",
+  "text",
+  """IyB7e3Byb2plY3ROYW1lfX0KClRoaXMgaXMgYSBzaW1wbGUgQXBwRW5naW5lIERhcnQgYXBwbGlj
+YXRpb24uIEl0IHNob3dzIGEgc2ltcGxlIHdheSBvZiBoYW5kbGluZyBIVFRQIHJlcXVlc3RzIGFu
+ZCBob3cgdG8gdXNlIHRoZSBwcmVjb25maWd1cmVkIEFwcEVuZ2luZSBtZW1jYWNoZSBBUEkgc2Vy
+dmljZS4K""",
   "app.yaml",
   "text",
   """dmVyc2lvbjogdjEKcnVudGltZTogY3VzdG9tCnZtOiB0cnVlCmFwaV92ZXJzaW9uOiAxCnRocmVh
@@ -74,13 +116,6 @@ ICAgICAgICAgICAgICAgICAgLSBSZWFkcyBiYWNrIHRoZSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0
 byB0aGUgZ2l2ZW4ga2V5cy4KICAgICAgJmx0O2Jhc2UtdXJsPi9jbGVhcl9jYWNoZSAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgIC0gQ2xlYXJzIHRoZSBjYWNoZSBhbmQgc2V0cyB0aGUg
 aW5pdGlhbCBrZXkvdmFsdWUgcGFpci4KICAgIDwvcHJlPgogIDwvYm9keT4KPC9odG1sPgo=""",
-  "CHANGELOG.md",
-  "text",
-  """IyBDaGFuZ2Vsb2cKCiMjIDAuMC4xCgoqIEluaXRpYWwgdmVyc2lvbiwgY3JlYXRlZCBieSBTdGFn
-ZWhhbmQuCg==""",
-  "Dockerfile",
-  "text",
-  "RlJPTSBnb29nbGUvZGFydC1ydW50aW1lCg==",
   "lib/memcache.dart",
   "text",
   """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
@@ -114,46 +149,11 @@ RnV0dXJlLmZvckVhY2goa2V5cywgKGtleSkgPT4gbWVtY2FjaGUuZ2V0KGtleSkKICAgICAgLnRo
 ZW4oKHZhbHVlKSA9PiByZXNwb25zZS53cml0ZWxuKCciJHtrZXl9IjogIiR7dmFsdWV9IicpKQog
 ICAgICAuY2F0Y2hFcnJvcigoXykgPT4gcmVzcG9uc2Uud3JpdGVsbignIiR7a2V5fSI6IHZhbHVl
 IG5vdCBmb3VuZCEnKSkpCiAgICAud2hlbkNvbXBsZXRlKHJlc3BvbnNlLmNsb3NlKTsKfQo=""",
-  "LICENSE",
-  "text",
-  """Q29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4KQWxsIHJpZ2h0cyByZXNlcnZlZC4K
-ClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
-b3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
-Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
-dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAgICAgbm90aWNlLCB0
-aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAg
-KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
-IGNvcHlyaWdodAogICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
-Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
-aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgICAqIE5laXRo
-ZXIgdGhlIG5hbWUgb2YgdGhlIDxvcmdhbml6YXRpb24+IG5vciB0aGUKICAgICAgbmFtZXMgb2Yg
-aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
-dHMKICAgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
-ciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
-T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECkFOWSBFWFBSRVNT
-IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
-RSBJTVBMSUVECldBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
-IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgPENP
-UFlSSUdIVCBIT0xERVI+IEJFIExJQUJMRSBGT1IgQU5ZCkRJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
-RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCihJTkNM
-VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
-UyBPUiBTRVJWSUNFUzsKTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
-IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECk9OIEFOWSBUSEVPUlkgT0YgTElBQklM
-SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCihJTkNM
-VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
-VEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
-SVRZIE9GIFNVQ0ggREFNQUdFLgo=""",
   "pubspec.yaml",
   "text",
   """bmFtZToge3twcm9qZWN0TmFtZX19CnZlcnNpb246IDAuMC4xCmRlc2NyaXB0aW9uOiBBIHNpbXBs
 ZSBBcHBFbmdpbmUgYXBwbGljYXRpb24uCiNhdXRob3I6IHt7YXV0aG9yfX0gPGVtYWlsQGV4YW1w
 bGUuY29tPgojaG9tZXBhZ2U6IGh0dHBzOi8vd3d3LmV4YW1wbGUuY29tCmVudmlyb25tZW50Ogog
 IHNkazogJz49MS41LjAgPDIuMC4wJwpkZXBlbmRlbmNpZXM6CiAgYXBwZW5naW5lOiAnPj0wLjIu
-MyA8MC4zLjAnCg==""",
-  "README.md",
-  "text",
-  """IyB7e3Byb2plY3ROYW1lfX0KClRoaXMgaXMgYSBzaW1wbGUgQXBwRW5naW5lIERhcnQgYXBwbGlj
-YXRpb24uIEl0IHNob3dzIGEgc2ltcGxlIHdheSBvZiBoYW5kbGluZyBIVFRQIHJlcXVlc3RzIGFu
-ZCBob3cgdG8gdXNlIHRoZSBwcmVjb25maWd1cmVkIEFwcEVuZ2luZSBtZW1jYWNoZSBBUEkgc2Vy
-dmljZS4K"""
+MyA8MC4zLjAnCg=="""
 ];
diff --git a/lib/generators/consoleapp_data.dart b/lib/generators/consoleapp_data.dart
index 705b318b1e4b690e65ea4f76e88edfbaa0fd2450..2729e5a87a571ead79be81e9743252d64e883025 100644
--- a/lib/generators/consoleapp_data.dart
+++ b/lib/generators/consoleapp_data.dart
@@ -6,25 +6,10 @@ List<String> data = [
   ".gitignore",
   "text",
   "LkRTX1N0b3JlCi5pZGVhCi5wdWIvCmJ1aWxkLwpwYWNrYWdlcwpwdWJzcGVjLmxvY2sK",
-  "bin/main.dart",
-  "text",
-  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
-ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
-bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKaW1wb3J0ICdw
-YWNrYWdlOnt7cHJvamVjdE5hbWV9fS97e3Byb2plY3ROYW1lfX0uZGFydCcgYXMge3twcm9qZWN0
-TmFtZX19OwoKbWFpbigpIHsKICBwcmludCgnSGVsbG8gd29ybGQ6ICR7e3twcm9qZWN0TmFtZX19
-LmNhbGN1bGF0ZSgpfSEnKTsKfQo=""",
   "CHANGELOG.md",
   "text",
   """IyBDaGFuZ2Vsb2cKCiMjIDAuMC4xCgoqIEluaXRpYWwgdmVyc2lvbiwgY3JlYXRlZCBieSBTdGFn
 ZWhhbmQuCg==""",
-  "lib/projectName.dart",
-  "text",
-  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
-ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
-bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKLy8vIFRoZSB7
-e3Byb2plY3ROYW1lfX0gbGlicmFyeS4KbGlicmFyeSB7e3Byb2plY3ROYW1lfX07CgppbnQgY2Fs
-Y3VsYXRlKCkgewogIHJldHVybiA2ICogNzsKfQo=""",
   "LICENSE",
   "text",
   """Q29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4KQWxsIHJpZ2h0cyByZXNlcnZlZC4K
@@ -54,6 +39,24 @@ SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCihJTkNM
 VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
 VEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
 SVRZIE9GIFNVQ0ggREFNQUdFLgo=""",
+  "README.md",
+  "text",
+  "IyB7e3Byb2plY3ROYW1lfX0KCkEgbWluaW1hbCBjb21tYW5kLWxpbmUgYXBwbGljYXRpb24uCg==",
+  "bin/main.dart",
+  "text",
+  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
+ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
+bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKaW1wb3J0ICdw
+YWNrYWdlOnt7cHJvamVjdE5hbWV9fS97e3Byb2plY3ROYW1lfX0uZGFydCcgYXMge3twcm9qZWN0
+TmFtZX19OwoKbWFpbigpIHsKICBwcmludCgnSGVsbG8gd29ybGQ6ICR7e3twcm9qZWN0TmFtZX19
+LmNhbGN1bGF0ZSgpfSEnKTsKfQo=""",
+  "lib/projectName.dart",
+  "text",
+  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
+ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
+bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKLy8vIFRoZSB7
+e3Byb2plY3ROYW1lfX0gbGlicmFyeS4KbGlicmFyeSB7e3Byb2plY3ROYW1lfX07CgppbnQgY2Fs
+Y3VsYXRlKCkgewogIHJldHVybiA2ICogNzsKfQo=""",
   "pubspec.yaml",
   "text",
   """bmFtZToge3twcm9qZWN0TmFtZX19CnZlcnNpb246IDAuMC4xCmRlc2NyaXB0aW9uOiBBIG1pbmlt
@@ -61,9 +64,6 @@ YWwgY29tbWFuZC1saW5lIGFwcGxpY2F0aW9uLgojYXV0aG9yOiB7e2F1dGhvcn19IDxlbWFpbEBl
 eGFtcGxlLmNvbT4KI2hvbWVwYWdlOiBodHRwczovL3d3dy5leGFtcGxlLmNvbQplbnZpcm9ubWVu
 dDoKICBzZGs6ICc+PTEuMC4wIDwyLjAuMCcKI2RlcGVuZGVuY2llczoKIyAgZm9vX2JhcjogJz49
 MS4wLjAgPDIuMC4wJwpkZXZfZGVwZW5kZW5jaWVzOgogIHVuaXR0ZXN0OiBhbnkK""",
-  "README.md",
-  "text",
-  "IyB7e3Byb2plY3ROYW1lfX0KCkEgbWluaW1hbCBjb21tYW5kLWxpbmUgYXBwbGljYXRpb24uCg==",
   "test/all.dart",
   "text",
   """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
diff --git a/lib/generators/package_data.dart b/lib/generators/package_data.dart
index 4f220e89f642a6e9e85f7fd636c45db2d2d1a22e..0dff69c25deda0ef5c59e748baf46631b6836154 100644
--- a/lib/generators/package_data.dart
+++ b/lib/generators/package_data.dart
@@ -10,31 +10,6 @@ List<String> data = [
   "text",
   """IyBDaGFuZ2Vsb2cKCiMjIDAuMC4xCgoqIEluaXRpYWwgdmVyc2lvbiwgY3JlYXRlZCBieSBTdGFn
 ZWhhbmQuCg==""",
-  "example/projectName.dart",
-  "text",
-  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
-ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
-bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKbGlicmFyeSB7
-e3Byb2plY3ROYW1lfX0uZXhhbXBsZTsKCmltcG9ydCAncGFja2FnZTp7e3Byb2plY3ROYW1lfX0v
-e3twcm9qZWN0TmFtZX19LmRhcnQnOwoKbWFpbigpIHsKICB2YXIgYXdlc29tZSA9IG5ldyBBd2Vz
-b21lKCk7CiAgcHJpbnQoJ2F3ZXNvbWU6ICR7YXdlc29tZS5pc0F3ZXNvbWV9Jyk7Cn0K""",
-  "lib/projectName.dart",
-  "text",
-  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
-ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
-bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKLy8vIFRoZSB7
-e3Byb2plY3ROYW1lfX0gbGlicmFyeS4KLy8vCi8vLyBUaGlzIGlzIGFuIGF3ZXNvbWUgbGlicmFy
-eS4gTW9yZSBkYXJ0ZG9jcyBnbyBoZXJlLgpsaWJyYXJ5IHt7cHJvamVjdE5hbWV9fTsKCi8vIFRP
-RE86IEV4cG9ydCBhbnkgbGlicmFyaWVzIGludGVuZGVkIGZvciBjbGllbnRzIG9mIHRoaXMgcGFj
-a2FnZS4KCmV4cG9ydCAnc3JjL3t7cHJvamVjdE5hbWV9fV9iYXNlLmRhcnQnOwo=""",
-  "lib/src/projectName_base.dart",
-  "text",
-  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
-ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
-bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKLy8gVE9ETzog
-UHV0IHB1YmxpYyBmYWNpbmcgdHlwZXMgaW4gdGhpcyBmaWxlLgoKbGlicmFyeSB7e3Byb2plY3RO
-YW1lfX0uYmFzZTsKCi8vLyBDaGVja3MgaWYgeW91IGFyZSBhd2Vzb21lLiBTcG9pbGVyOiB5b3Ug
-YXJlLgpjbGFzcyBBd2Vzb21lIHsKICBib29sIGdldCBpc0F3ZXNvbWUgPT4gdHJ1ZTsKfQo=""",
   "LICENSE",
   "text",
   """Q29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4KQWxsIHJpZ2h0cyByZXNlcnZlZC4K
@@ -64,13 +39,6 @@ SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCihJTkNM
 VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
 VEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
 SVRZIE9GIFNVQ0ggREFNQUdFLgo=""",
-  "pubspec.yaml",
-  "text",
-  """bmFtZToge3twcm9qZWN0TmFtZX19CmRlc2NyaXB0aW9uOiA+CiAgQSBsaWJyYXJ5IHVzZWZ1bCBm
-b3IgYXBwbGljYXRpb25zIG9yIGZvciBzaGFyaW5nIG9uIHB1Yi5kYXJ0bGFuZy5vcmcuCnZlcnNp
-b246IDAuMC4xCiNhdXRob3I6IHt7YXV0aG9yfX0gPGVtYWlsQGV4YW1wbGUuY29tPgojaG9tZXBh
-Z2U6IGh0dHBzOi8vd3d3LmV4YW1wbGUuY29tCiNkZXBlbmRlbmNpZXM6CiMgIGxpYl9uYW1lOiBh
-bnkKZGV2X2RlcGVuZGVuY2llczoKICB1bml0dGVzdDogYW55Cg==""",
   "README.md",
   "text",
   """IyB7e3Byb2plY3ROYW1lfX0KCkEgbGlicmFyeSBmb3IgRGFydCBkZXZlbG9wZXJzLiBJdCBpcyBh
@@ -80,6 +48,38 @@ IHsKICAgICAgdmFyIGF3ZXNvbWUgPSBuZXcgQXdlc29tZSgpOwogICAgfQoKIyMgRmVhdHVyZXMg
 YW5kIGJ1Z3MKClBsZWFzZSBmaWxlIGZlYXR1cmUgcmVxdWVzdHMgYW5kIGJ1Z3MgYXQgdGhlIFtp
 c3N1ZSB0cmFja2VyXVt0cmFja2VyXS4KClt0cmFja2VyXTogaHR0cDovL2V4YW1wbGUuY29tL2lz
 c3Vlcy9yZXBsYWNlbWUK""",
+  "example/projectName.dart",
+  "text",
+  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
+ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
+bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKbGlicmFyeSB7
+e3Byb2plY3ROYW1lfX0uZXhhbXBsZTsKCmltcG9ydCAncGFja2FnZTp7e3Byb2plY3ROYW1lfX0v
+e3twcm9qZWN0TmFtZX19LmRhcnQnOwoKbWFpbigpIHsKICB2YXIgYXdlc29tZSA9IG5ldyBBd2Vz
+b21lKCk7CiAgcHJpbnQoJ2F3ZXNvbWU6ICR7YXdlc29tZS5pc0F3ZXNvbWV9Jyk7Cn0K""",
+  "lib/projectName.dart",
+  "text",
+  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
+ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
+bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKLy8vIFRoZSB7
+e3Byb2plY3ROYW1lfX0gbGlicmFyeS4KLy8vCi8vLyBUaGlzIGlzIGFuIGF3ZXNvbWUgbGlicmFy
+eS4gTW9yZSBkYXJ0ZG9jcyBnbyBoZXJlLgpsaWJyYXJ5IHt7cHJvamVjdE5hbWV9fTsKCi8vIFRP
+RE86IEV4cG9ydCBhbnkgbGlicmFyaWVzIGludGVuZGVkIGZvciBjbGllbnRzIG9mIHRoaXMgcGFj
+a2FnZS4KCmV4cG9ydCAnc3JjL3t7cHJvamVjdE5hbWV9fV9iYXNlLmRhcnQnOwo=""",
+  "lib/src/projectName_base.dart",
+  "text",
+  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
+ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
+bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKLy8gVE9ETzog
+UHV0IHB1YmxpYyBmYWNpbmcgdHlwZXMgaW4gdGhpcyBmaWxlLgoKbGlicmFyeSB7e3Byb2plY3RO
+YW1lfX0uYmFzZTsKCi8vLyBDaGVja3MgaWYgeW91IGFyZSBhd2Vzb21lLiBTcG9pbGVyOiB5b3Ug
+YXJlLgpjbGFzcyBBd2Vzb21lIHsKICBib29sIGdldCBpc0F3ZXNvbWUgPT4gdHJ1ZTsKfQo=""",
+  "pubspec.yaml",
+  "text",
+  """bmFtZToge3twcm9qZWN0TmFtZX19CmRlc2NyaXB0aW9uOiA+CiAgQSBsaWJyYXJ5IHVzZWZ1bCBm
+b3IgYXBwbGljYXRpb25zIG9yIGZvciBzaGFyaW5nIG9uIHB1Yi5kYXJ0bGFuZy5vcmcuCnZlcnNp
+b246IDAuMC4xCiNhdXRob3I6IHt7YXV0aG9yfX0gPGVtYWlsQGV4YW1wbGUuY29tPgojaG9tZXBh
+Z2U6IGh0dHBzOi8vd3d3LmV4YW1wbGUuY29tCiNkZXBlbmRlbmNpZXM6CiMgIGxpYl9uYW1lOiBh
+bnkKZGV2X2RlcGVuZGVuY2llczoKICB1bml0dGVzdDogYW55Cg==""",
   "test/all_test.dart",
   "text",
   """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
diff --git a/lib/generators/polymerapp_data.dart b/lib/generators/polymerapp_data.dart
index 62dd70ea9cebcc96f9faef4417e572859fce0dfc..bc61e6487c6262c9ce4e0d71dcab3b93ce1bf26d 100644
--- a/lib/generators/polymerapp_data.dart
+++ b/lib/generators/polymerapp_data.dart
@@ -7,6 +7,46 @@ List<String> data = [
   "text",
   """LkRTX1N0b3JlCi5pZGVhCi5wdWIvCi5idWlsZGxvZwpidWlsZC8KcGFja2FnZXMKcHVic3BlYy5s
 b2NrCg==""",
+  "CHANGELOG.md",
+  "text",
+  """IyBDaGFuZ2Vsb2cKCiMjIDAuMC4xCgoqIEluaXRpYWwgdmVyc2lvbiwgY3JlYXRlZCBieSBTdGFn
+ZWhhbmQuCg==""",
+  "LICENSE",
+  "text",
+  """Q29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4KQWxsIHJpZ2h0cyByZXNlcnZlZC4K
+ClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
+b3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
+Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
+dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAgICAgbm90aWNlLCB0
+aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAg
+KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
+IGNvcHlyaWdodAogICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
+Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
+aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgICAqIE5laXRo
+ZXIgdGhlIG5hbWUgb2YgdGhlIDxvcmdhbml6YXRpb24+IG5vciB0aGUKICAgICAgbmFtZXMgb2Yg
+aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
+dHMKICAgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
+ciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
+T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECkFOWSBFWFBSRVNT
+IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
+RSBJTVBMSUVECldBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
+IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgPENP
+UFlSSUdIVCBIT0xERVI+IEJFIExJQUJMRSBGT1IgQU5ZCkRJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
+RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCihJTkNM
+VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
+UyBPUiBTRVJWSUNFUzsKTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
+IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECk9OIEFOWSBUSEVPUlkgT0YgTElBQklM
+SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCihJTkNM
+VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
+VEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
+SVRZIE9GIFNVQ0ggREFNQUdFLgo=""",
+  "README.md",
+  "text",
+  """IyB7eyBwcm9qZWN0TmFtZSB9fQoKQSBzdGFydGVyIHRlbXBsYXRlIGZvciBhIHBvbHltZXIuZGFy
+dCB3ZWIgYXBwLgoKIyMgQ3JlYXRpbmcgbmV3IGVsZW1lbnRzCgpUaGUgYHBvbHltZXJgIHBhY2th
+Z2UgaW5jbHVkZXMgYSB1dGlsaXR5IHRvIGdlbmVyYXRlIG5ldyBlbGVtZW50cy4gRnJvbQp3aXRo
+aW4gdGhpcyBwcm9qZWN0LCBydW46CgpgcHViIHJ1biBwb2x5bWVyOm5ld19lbGVtZW50IDxuYW1l
+PmAK""",
   "build.dart",
   "text",
   """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
@@ -15,10 +55,6 @@ bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKLy8gVGhpcyBm
 aWxlIGlzIG9ubHkgdXNlZCBieSBEYXJ0IEVkaXRvci4gSXQgZGlzcGxheXMgZXJyb3JzIGFuZCB3
 YXJuaW5ncyBhZnRlcgovLyBhbmFseXppbmcgYSBwb2x5bWVyLmRhcnQgYXBwLgoKZXhwb3J0ICdw
 YWNrYWdlOnBvbHltZXIvZGVmYXVsdF9idWlsZC5kYXJ0JzsK""",
-  "CHANGELOG.md",
-  "text",
-  """IyBDaGFuZ2Vsb2cKCiMjIDAuMC4xCgoqIEluaXRpYWwgdmVyc2lvbiwgY3JlYXRlZCBieSBTdGFn
-ZWhhbmQuCg==""",
   "lib/main_app.dart",
   "text",
   """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
@@ -59,35 +95,6 @@ IiBpbnB1dFZhbHVlPSJ7e2lucHV0fX0iPjwvcGFwZXItaW5wdXQ+CgogICAgPHA+CiAgICAgIFJl
 dmVyc2VkOiB7eyByZXZlcnNlZCB9fQogICAgPC9wPgogIDwvdGVtcGxhdGU+CiAgPHNjcmlwdCB0
 eXBlPSJhcHBsaWNhdGlvbi9kYXJ0IiBzcmM9Im1haW5fYXBwLmRhcnQiPjwvc2NyaXB0Pgo8L3Bv
 bHltZXItZWxlbWVudD4K""",
-  "LICENSE",
-  "text",
-  """Q29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4KQWxsIHJpZ2h0cyByZXNlcnZlZC4K
-ClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
-b3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
-Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
-dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAgICAgbm90aWNlLCB0
-aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAg
-KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
-IGNvcHlyaWdodAogICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
-Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
-aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgICAqIE5laXRo
-ZXIgdGhlIG5hbWUgb2YgdGhlIDxvcmdhbml6YXRpb24+IG5vciB0aGUKICAgICAgbmFtZXMgb2Yg
-aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
-dHMKICAgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
-ciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
-T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECkFOWSBFWFBSRVNT
-IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
-RSBJTVBMSUVECldBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
-IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgPENP
-UFlSSUdIVCBIT0xERVI+IEJFIExJQUJMRSBGT1IgQU5ZCkRJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
-RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCihJTkNM
-VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
-UyBPUiBTRVJWSUNFUzsKTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
-IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECk9OIEFOWSBUSEVPUlkgT0YgTElBQklM
-SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCihJTkNM
-VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
-VEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
-SVRZIE9GIFNVQ0ggREFNQUdFLgo=""",
   "pubspec.yaml",
   "text",
   """bmFtZTogJ3t7cHJvamVjdE5hbWV9fScKdmVyc2lvbjogMC4wLjEKZGVzY3JpcHRpb246ID4KICBB
@@ -97,13 +104,6 @@ bGUuY29tCmVudmlyb25tZW50OgogIHNkazogJz49MS4wLjAgPDIuMC4wJwpkZXBlbmRlbmNpZXM6
 CiAgYnJvd3NlcjogYW55CiAgcG9seW1lcjogJz49MC4xNS4wIDwwLjE2LjAnCiAgcGFwZXJfZWxl
 bWVudHM6ICc+PTAuNS4wIDwwLjYuMCcKdHJhbnNmb3JtZXJzOgotIHBvbHltZXI6CiAgICBlbnRy
 eV9wb2ludHM6IHdlYi9pbmRleC5odG1sCg==""",
-  "README.md",
-  "text",
-  """IyB7eyBwcm9qZWN0TmFtZSB9fQoKQSBzdGFydGVyIHRlbXBsYXRlIGZvciBhIHBvbHltZXIuZGFy
-dCB3ZWIgYXBwLgoKIyMgQ3JlYXRpbmcgbmV3IGVsZW1lbnRzCgpUaGUgYHBvbHltZXJgIHBhY2th
-Z2UgaW5jbHVkZXMgYSB1dGlsaXR5IHRvIGdlbmVyYXRlIG5ldyBlbGVtZW50cy4gRnJvbQp3aXRo
-aW4gdGhpcyBwcm9qZWN0LCBydW46CgpgcHViIHJ1biBwb2x5bWVyOm5ld19lbGVtZW50IDxuYW1l
-PmAK""",
   "web/apple-touch-icon-precomposed.png",
   "binary",
   """iVBORw0KGgoAAAANSUhEUgAAAJgAAACYCAMAAAAvHNATAAAAYFBMVEX///+0y/MaYdxik+crbd4g
diff --git a/lib/generators/shelfserver_data.dart b/lib/generators/shelfserver_data.dart
index 13f5e43e91340f90fbe5a0ebae2c51fb9c5887b3..f185b35fba8db95ec9db10919c2c8b0b22fadcb2 100644
--- a/lib/generators/shelfserver_data.dart
+++ b/lib/generators/shelfserver_data.dart
@@ -6,26 +6,6 @@ List<String> data = [
   ".gitignore",
   "text",
   "LkRTX1N0b3JlCi5pZGVhCi5wdWIvCmJ1aWxkLwpwYWNrYWdlcwpwdWJzcGVjLmxvY2sK",
-  "bin/server.dart",
-  "text",
-  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
-ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
-bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKaW1wb3J0ICdk
-YXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTphcmdzL2FyZ3MuZGFydCc7CmltcG9ydCAncGFja2Fn
-ZTpzaGVsZi9zaGVsZi5kYXJ0JyBhcyBzaGVsZjsKaW1wb3J0ICdwYWNrYWdlOnNoZWxmL3NoZWxm
-X2lvLmRhcnQnIGFzIGlvOwoKdm9pZCBtYWluKExpc3Q8U3RyaW5nPiBhcmdzKSB7CiAgdmFyIHBh
-cnNlciA9IG5ldyBBcmdQYXJzZXIoKQogICAgICAuLmFkZE9wdGlvbigncG9ydCcsIGFiYnI6ICdw
-JywgZGVmYXVsdHNUbzogJzgwODAnKTsKCiAgdmFyIHJlc3VsdCA9IHBhcnNlci5wYXJzZShhcmdz
-KTsKCiAgdmFyIHBvcnQgPSBpbnQucGFyc2UocmVzdWx0Wydwb3J0J10sIG9uRXJyb3I6ICh2YWwp
-IHsKICAgIHN0ZG91dC53cml0ZWxuKCdDb3VsZCBub3QgcGFyc2UgcG9ydCB2YWx1ZSAiJHZhbCIg
-aW50byBhIG51bWJlci4nKTsKICAgIGV4aXQoMSk7CiAgfSk7CgogIHZhciBoYW5kbGVyID0gY29u
-c3Qgc2hlbGYuUGlwZWxpbmUoKQogICAgICAuYWRkTWlkZGxld2FyZShzaGVsZi5sb2dSZXF1ZXN0
-cygpKQogICAgICAuYWRkSGFuZGxlcihfZWNob1JlcXVlc3QpOwoKICBpby5zZXJ2ZShoYW5kbGVy
-LCAnbG9jYWxob3N0JywgcG9ydCkudGhlbigoc2VydmVyKSB7CiAgICBwcmludCgnU2VydmluZyBh
-dCBodHRwOi8vJHtzZXJ2ZXIuYWRkcmVzcy5ob3N0fToke3NlcnZlci5wb3J0fScpOwogIH0pOwp9
-CgpzaGVsZi5SZXNwb25zZSBfZWNob1JlcXVlc3Qoc2hlbGYuUmVxdWVzdCByZXF1ZXN0KSB7CiAg
-cmV0dXJuIG5ldyBzaGVsZi5SZXNwb25zZS5vaygnUmVxdWVzdCBmb3IgIiR7cmVxdWVzdC51cmx9
-IicpOwp9Cg==""",
   "CHANGELOG.md",
   "text",
   """IyBDaGFuZ2Vsb2cKCiMjIDAuMC4xCgoqIEluaXRpYWwgdmVyc2lvbiwgY3JlYXRlZCBieSBTdGFn
@@ -59,15 +39,35 @@ SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCihJTkNM
 VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
 VEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
 SVRZIE9GIFNVQ0ggREFNQUdFLgo=""",
+  "README.md",
+  "text",
+  """IyB7e3Byb2plY3ROYW1lfX0KCkEgbWluaW1hbCB3ZWIgc2VydmVyIHVzaW5nIFtTaGVsZl0oaHR0
+cHM6Ly9wdWIuZGFydGxhbmcub3JnL3BhY2thZ2VzL3NoZWxmKS4K""",
+  "bin/server.dart",
+  "text",
+  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
+ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
+bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKaW1wb3J0ICdk
+YXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTphcmdzL2FyZ3MuZGFydCc7CmltcG9ydCAncGFja2Fn
+ZTpzaGVsZi9zaGVsZi5kYXJ0JyBhcyBzaGVsZjsKaW1wb3J0ICdwYWNrYWdlOnNoZWxmL3NoZWxm
+X2lvLmRhcnQnIGFzIGlvOwoKdm9pZCBtYWluKExpc3Q8U3RyaW5nPiBhcmdzKSB7CiAgdmFyIHBh
+cnNlciA9IG5ldyBBcmdQYXJzZXIoKQogICAgICAuLmFkZE9wdGlvbigncG9ydCcsIGFiYnI6ICdw
+JywgZGVmYXVsdHNUbzogJzgwODAnKTsKCiAgdmFyIHJlc3VsdCA9IHBhcnNlci5wYXJzZShhcmdz
+KTsKCiAgdmFyIHBvcnQgPSBpbnQucGFyc2UocmVzdWx0Wydwb3J0J10sIG9uRXJyb3I6ICh2YWwp
+IHsKICAgIHN0ZG91dC53cml0ZWxuKCdDb3VsZCBub3QgcGFyc2UgcG9ydCB2YWx1ZSAiJHZhbCIg
+aW50byBhIG51bWJlci4nKTsKICAgIGV4aXQoMSk7CiAgfSk7CgogIHZhciBoYW5kbGVyID0gY29u
+c3Qgc2hlbGYuUGlwZWxpbmUoKQogICAgICAuYWRkTWlkZGxld2FyZShzaGVsZi5sb2dSZXF1ZXN0
+cygpKQogICAgICAuYWRkSGFuZGxlcihfZWNob1JlcXVlc3QpOwoKICBpby5zZXJ2ZShoYW5kbGVy
+LCAnbG9jYWxob3N0JywgcG9ydCkudGhlbigoc2VydmVyKSB7CiAgICBwcmludCgnU2VydmluZyBh
+dCBodHRwOi8vJHtzZXJ2ZXIuYWRkcmVzcy5ob3N0fToke3NlcnZlci5wb3J0fScpOwogIH0pOwp9
+CgpzaGVsZi5SZXNwb25zZSBfZWNob1JlcXVlc3Qoc2hlbGYuUmVxdWVzdCByZXF1ZXN0KSB7CiAg
+cmV0dXJuIG5ldyBzaGVsZi5SZXNwb25zZS5vaygnUmVxdWVzdCBmb3IgIiR7cmVxdWVzdC51cmx9
+IicpOwp9Cg==""",
   "pubspec.yaml",
   "text",
   """bmFtZTogJ3t7cHJvamVjdE5hbWV9fScKdmVyc2lvbjogMC4wLjEKZGVzY3JpcHRpb246IEEgbWlu
 aW1hbCB3ZWIgc2VydmVyIHVzaW5nIHRoZSBzaGVsZiBwYWNrYWdlLgojYXV0aG9yOiB7e2F1dGhv
 cn19IDxlbWFpbEBleGFtcGxlLmNvbT4KI2hvbWVwYWdlOiBodHRwczovL3d3dy5leGFtcGxlLmNv
 bQplbnZpcm9ubWVudDoKICBzZGs6ICc+PTEuMC4wIDwyLjAuMCcKZGVwZW5kZW5jaWVzOgogIGFy
-Z3M6ICc+PTAuMTAuMCA8MC4xMy4wJwogIHNoZWxmOiAnPj0wLjUuNSA8MC42LjAnCg==""",
-  "README.md",
-  "text",
-  """IyB7e3Byb2plY3ROYW1lfX0KCkEgbWluaW1hbCB3ZWIgc2VydmVyIHVzaW5nIFtTaGVsZl0oaHR0
-cHM6Ly9wdWIuZGFydGxhbmcub3JnL3BhY2thZ2VzL3NoZWxmKS4K"""
+Z3M6ICc+PTAuMTAuMCA8MC4xMy4wJwogIHNoZWxmOiAnPj0wLjUuNSA8MC42LjAnCg=="""
 ];
diff --git a/lib/generators/ubersimplewebapp_data.dart b/lib/generators/ubersimplewebapp_data.dart
index 043e0c5758289729100d93aa4e96953ed6ab2efc..bcf10e22e721dc1a23ad4ed5e5de7dafb59c2467 100644
--- a/lib/generators/ubersimplewebapp_data.dart
+++ b/lib/generators/ubersimplewebapp_data.dart
@@ -39,6 +39,10 @@ SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCihJTkNM
 VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
 VEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
 SVRZIE9GIFNVQ0ggREFNQUdFLgo=""",
+  "README.md",
+  "text",
+  """IyBVYmVyLXNpbXBsZSB3ZWIgYXBwCgpHZW5lcmF0ZWQgYnkgU3RhZ2VoYW5kLiBTZWUgTElDRU5T
+RS4=""",
   "pubspec.yaml",
   "text",
   """bmFtZTogJ3t7cHJvamVjdE5hbWV9fScKdmVyc2lvbjogMC4wLjEKZGVzY3JpcHRpb246ID4KICBB
@@ -46,10 +50,6 @@ biBhYnNvbHV0ZSBiYXJlLWJvbmVzIHdlYiBhcHAuCiNhdXRob3I6IHt7YXV0aG9yfX0gPGVtYWls
 QGV4YW1wbGUuY29tPgojaG9tZXBhZ2U6IGh0dHBzOi8vd3d3LmV4YW1wbGUuY29tCmVudmlyb25t
 ZW50OgogIHNkazogJz49MS4wLjAgPDIuMC4wJwpkZXBlbmRlbmNpZXM6CiAgYnJvd3NlcjogYW55
 Cg==""",
-  "README.md",
-  "text",
-  """IyBVYmVyLXNpbXBsZSB3ZWIgYXBwCgpHZW5lcmF0ZWQgYnkgU3RhZ2VoYW5kLiBTZWUgTElDRU5T
-RS4=""",
   "web/index.html",
   "text",
   """PCFET0NUWVBFIGh0bWw+Cgo8IS0tCiAgQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9
@@ -71,11 +71,11 @@ c2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K""",
 ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
 bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKaW1wb3J0ICdk
 YXJ0Omh0bWwnOwoKdm9pZCBtYWluKCkgewogIHF1ZXJ5U2VsZWN0b3IoJyNvdXRwdXQnKS50ZXh0
-ID0gJ0RhcnQgaXMgcnVubmluZy4nOwp9""",
+ID0gJ0RhcnQgaXMgcnVubmluZy4nOwp9Cg==""",
   "web/styles/main.css",
   "text",
   """QGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90
 byk7CgpodG1sLCBib2R5IHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAg
 bWFyZ2luOiAwOwogICAgcGFkZGluZzogMDsKICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fu
-cy1zZXJpZjsKfQ=="""
+cy1zZXJpZjsKfQo="""
 ];
diff --git a/lib/generators/webapp_data.dart b/lib/generators/webapp_data.dart
index a7c530e78d6d47d5ce932583eb33ec55ea8b9dd2..08f26dda9d670cdfeedc806c70e5de99085e6f48 100644
--- a/lib/generators/webapp_data.dart
+++ b/lib/generators/webapp_data.dart
@@ -10,37 +10,6 @@ List<String> data = [
   "text",
   """IyBDaGFuZ2Vsb2cKCiMjIDAuMC4xCgoqIEluaXRpYWwgdmVyc2lvbiwgY3JlYXRlZCBieSBTdGFn
 ZWhhbmQuCg==""",
-  "lib/nav_menu.dart",
-  "text",
-  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
-ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
-bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKbGlicmFyeSBu
-YXZfbWVudTsKCmltcG9ydCAnZGFydDpodG1sJzsKCmluaXROYXZNZW51KCkgewogIHZhciBuYXZk
-cmF3ZXJDb250YWluZXIgPSBxdWVyeVNlbGVjdG9yKCcubmF2ZHJhd2VyLWNvbnRhaW5lcicpOwog
-IHZhciBhcHBiYXJFbGVtZW50ID0gcXVlcnlTZWxlY3RvcignLmFwcC1iYXInKTsKICB2YXIgbWVu
-dUJ0biA9IHF1ZXJ5U2VsZWN0b3IoJy5tZW51Jyk7CiAgdmFyIG1haW4gPSBxdWVyeVNlbGVjdG9y
-KCdtYWluJyk7CgogIGNsb3NlTWVudShlKSB7CiAgICBkb2N1bWVudC5ib2R5LmNsYXNzZXMucmVt
-b3ZlKCdvcGVuJyk7CiAgICBhcHBiYXJFbGVtZW50LmNsYXNzZXMucmVtb3ZlKCdvcGVuJyk7CiAg
-ICBuYXZkcmF3ZXJDb250YWluZXIuY2xhc3Nlcy5yZW1vdmUoJ29wZW4nKTsKICB9CgogIHRvZ2ds
-ZU1lbnUoZSkgewogICAgZG9jdW1lbnQuYm9keS5jbGFzc2VzLnRvZ2dsZSgnb3BlbicpOwogICAg
-YXBwYmFyRWxlbWVudC5jbGFzc2VzLnRvZ2dsZSgnb3BlbicpOwogICAgbmF2ZHJhd2VyQ29udGFp
-bmVyLmNsYXNzZXMudG9nZ2xlKCdvcGVuJyk7CiAgICBuYXZkcmF3ZXJDb250YWluZXIuY2xhc3Nl
-cy5hZGQoJ29wZW5lZCcpOwogIH0KCiAgbWFpbi5vbkNsaWNrLmxpc3RlbihjbG9zZU1lbnUpOwog
-IG1lbnVCdG4ub25DbGljay5saXN0ZW4odG9nZ2xlTWVudSk7CiAgbmF2ZHJhd2VyQ29udGFpbmVy
-Lm9uQ2xpY2subGlzdGVuKChldmVudCkgewogICAgaWYgKGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9
-PSAnQScgfHwgZXZlbnQudGFyZ2V0Lm5vZGVOYW1lID09ICdMSScpIHsKICAgICAgY2xvc2VNZW51
-KGV2ZW50KTsKICAgIH0KICB9KTsKfQo=""",
-  "lib/reverser.dart",
-  "text",
-  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
-ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
-bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKbGlicmFyeSBy
-ZXZlcnNlcjsKCmltcG9ydCAnZGFydDpodG1sJzsKCi8vIEV4YW1wbGUgb2YgaG9va2luZyBpbnRv
-IHRoZSBET00gYW5kIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBmcm9tIGlucHV0IGZpZWxkcy4KaW5p
-dFJldmVyc2VyKCkgewogIHZhciBvdXRwdXQgPSBxdWVyeVNlbGVjdG9yKCcjb3V0Jyk7CiAgdmFy
-IGlucHV0ID0gcXVlcnlTZWxlY3RvcignI25hbWUnKTsKICBpbnB1dC5vbktleVVwLmxpc3Rlbigo
-XykgewogICAgb3V0cHV0LnRleHQgPSBpbnB1dC52YWx1ZS5zcGxpdCgnJykucmV2ZXJzZWQuam9p
-bigpOwogIH0pOwp9Cg==""",
   "LICENSE",
   "text",
   """Q29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4KQWxsIHJpZ2h0cyByZXNlcnZlZC4K
@@ -70,16 +39,6 @@ SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCihJTkNM
 VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
 VEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
 SVRZIE9GIFNVQ0ggREFNQUdFLgo=""",
-  "pubspec.yaml",
-  "text",
-  """bmFtZTogJ3t7cHJvamVjdE5hbWV9fScKdmVyc2lvbjogMC4wLjEKZGVzY3JpcHRpb246ID4KICBB
-IG1pbmltYWwgd2ViIGFwcCBmb3IgdGhlIGRldmVsb3BlciB0aGF0IGRvZXNu4oCZdCB3YW50IHRv
-IGJlIGNvbmZ1c2VkIGJ5IHRvbwogIG11Y2ggZ29pbmcgb24uCiNhdXRob3I6IHt7YXV0aG9yfX0g
-PGVtYWlsQGV4YW1wbGUuY29tPgojaG9tZXBhZ2U6IGh0dHBzOi8vd3d3LmV4YW1wbGUuY29tCmVu
-dmlyb25tZW50OgogIHNkazogJz49MS4wLjAgPDIuMC4wJwpkZXBlbmRlbmNpZXM6CiAgYnJvd3Nl
-cjogYW55CiAgc2FzczogJz49MC40LjAgPDAuNS4wJwogIHNjcmlwdF9pbmxpbmVyOiAnPj0xLjAu
-MCA8Mi4wLjAnCiAgcm91dGVfaGllcmFyY2hpY2FsOiAnPj0wLjUuMCA8MC43LjAnCnRyYW5zZm9y
-bWVyczoKLSBzY3JpcHRfaW5saW5lcgojLSBzYXNzOgojICAgIHN0eWxlOiBjb21wcmVzc2VkCg==""",
   "README.md",
   "text",
   """IyBNaW5pbWFsIERhcnQgV2ViYXBwCgpBIHN0YXJ0aW5nIHBvaW50IGZvciBhIHdlYmFwcCBidWls
@@ -122,6 +81,47 @@ dGVtcGxhdGUgc2ltcGx5IGZpbmRzIHRoZSBuZWNlc3NhcnkgaW5wdXQgZmllbGRzCnZpYSBgcXVl
 cnlTZWxlY3RvcmAgYW5kIGJpbmRzIHRvIHRoZWlyIGtleVVwIGV2ZW50cy4gTG9vayBpbnNpZGUK
 YGx1Yi9yZXZlcnNlci5kYXJ0YCBmb3IgYW4gZXhhbXBsZS4KCkhvd2V2ZXIsIGEgcmVhbCBhcHAg
 ZnJhbWV3b3JrIHdpbGwgb2ZmZXIgcm9idXN0IGRhdGEgYmluZGluZy4K""",
+  "lib/nav_menu.dart",
+  "text",
+  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
+ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
+bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKbGlicmFyeSBu
+YXZfbWVudTsKCmltcG9ydCAnZGFydDpodG1sJzsKCmluaXROYXZNZW51KCkgewogIHZhciBuYXZk
+cmF3ZXJDb250YWluZXIgPSBxdWVyeVNlbGVjdG9yKCcubmF2ZHJhd2VyLWNvbnRhaW5lcicpOwog
+IHZhciBhcHBiYXJFbGVtZW50ID0gcXVlcnlTZWxlY3RvcignLmFwcC1iYXInKTsKICB2YXIgbWVu
+dUJ0biA9IHF1ZXJ5U2VsZWN0b3IoJy5tZW51Jyk7CiAgdmFyIG1haW4gPSBxdWVyeVNlbGVjdG9y
+KCdtYWluJyk7CgogIGNsb3NlTWVudShlKSB7CiAgICBkb2N1bWVudC5ib2R5LmNsYXNzZXMucmVt
+b3ZlKCdvcGVuJyk7CiAgICBhcHBiYXJFbGVtZW50LmNsYXNzZXMucmVtb3ZlKCdvcGVuJyk7CiAg
+ICBuYXZkcmF3ZXJDb250YWluZXIuY2xhc3Nlcy5yZW1vdmUoJ29wZW4nKTsKICB9CgogIHRvZ2ds
+ZU1lbnUoZSkgewogICAgZG9jdW1lbnQuYm9keS5jbGFzc2VzLnRvZ2dsZSgnb3BlbicpOwogICAg
+YXBwYmFyRWxlbWVudC5jbGFzc2VzLnRvZ2dsZSgnb3BlbicpOwogICAgbmF2ZHJhd2VyQ29udGFp
+bmVyLmNsYXNzZXMudG9nZ2xlKCdvcGVuJyk7CiAgICBuYXZkcmF3ZXJDb250YWluZXIuY2xhc3Nl
+cy5hZGQoJ29wZW5lZCcpOwogIH0KCiAgbWFpbi5vbkNsaWNrLmxpc3RlbihjbG9zZU1lbnUpOwog
+IG1lbnVCdG4ub25DbGljay5saXN0ZW4odG9nZ2xlTWVudSk7CiAgbmF2ZHJhd2VyQ29udGFpbmVy
+Lm9uQ2xpY2subGlzdGVuKChldmVudCkgewogICAgaWYgKGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9
+PSAnQScgfHwgZXZlbnQudGFyZ2V0Lm5vZGVOYW1lID09ICdMSScpIHsKICAgICAgY2xvc2VNZW51
+KGV2ZW50KTsKICAgIH0KICB9KTsKfQo=""",
+  "lib/reverser.dart",
+  "text",
+  """Ly8gQ29weXJpZ2h0IChjKSB7e3llYXJ9fSwge3thdXRob3J9fS4gQWxsIHJpZ2h0cyByZXNlcnZl
+ZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUKLy8gaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
+bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoKbGlicmFyeSBy
+ZXZlcnNlcjsKCmltcG9ydCAnZGFydDpodG1sJzsKCi8vIEV4YW1wbGUgb2YgaG9va2luZyBpbnRv
+IHRoZSBET00gYW5kIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBmcm9tIGlucHV0IGZpZWxkcy4KaW5p
+dFJldmVyc2VyKCkgewogIHZhciBvdXRwdXQgPSBxdWVyeVNlbGVjdG9yKCcjb3V0Jyk7CiAgdmFy
+IGlucHV0ID0gcXVlcnlTZWxlY3RvcignI25hbWUnKTsKICBpbnB1dC5vbktleVVwLmxpc3Rlbigo
+XykgewogICAgb3V0cHV0LnRleHQgPSBpbnB1dC52YWx1ZS5zcGxpdCgnJykucmV2ZXJzZWQuam9p
+bigpOwogIH0pOwp9Cg==""",
+  "pubspec.yaml",
+  "text",
+  """bmFtZTogJ3t7cHJvamVjdE5hbWV9fScKdmVyc2lvbjogMC4wLjEKZGVzY3JpcHRpb246ID4KICBB
+IG1pbmltYWwgd2ViIGFwcCBmb3IgdGhlIGRldmVsb3BlciB0aGF0IGRvZXNu4oCZdCB3YW50IHRv
+IGJlIGNvbmZ1c2VkIGJ5IHRvbwogIG11Y2ggZ29pbmcgb24uCiNhdXRob3I6IHt7YXV0aG9yfX0g
+PGVtYWlsQGV4YW1wbGUuY29tPgojaG9tZXBhZ2U6IGh0dHBzOi8vd3d3LmV4YW1wbGUuY29tCmVu
+dmlyb25tZW50OgogIHNkazogJz49MS4wLjAgPDIuMC4wJwpkZXBlbmRlbmNpZXM6CiAgYnJvd3Nl
+cjogYW55CiAgc2FzczogJz49MC40LjAgPDAuNS4wJwogIHNjcmlwdF9pbmxpbmVyOiAnPj0xLjAu
+MCA8Mi4wLjAnCiAgcm91dGVfaGllcmFyY2hpY2FsOiAnPj0wLjUuMCA8MC43LjAnCnRyYW5zZm9y
+bWVyczoKLSBzY3JpcHRfaW5saW5lcgojLSBzYXNzOgojICAgIHN0eWxlOiBjb21wcmVzc2VkCg==""",
   "web/apple-touch-icon-precomposed.png",
   "binary",
   """iVBORw0KGgoAAAANSUhEUgAAAJgAAACYCAMAAAAvHNATAAAAYFBMVEX///+0y/MaYdxik+crbd4g
diff --git a/tool/grind.dart b/tool/grind.dart
index fe88aeb7f858b48b9a7e3b27d378dbfcd672725e..d86ac4ed0caf3179d5b92c86c59ad60fa76f0759 100644
--- a/tool/grind.dart
+++ b/tool/grind.dart
@@ -146,7 +146,8 @@ String _toStr(String s) {
 }
 
 void _traverse(Directory dir, String root, List<String> results) {
-  for (FileSystemEntity entity in dir.listSync(recursive: false, followLinks: false)) {
+  var files = _listSync(dir, recursive: false, followLinks: false);
+  for (FileSystemEntity entity in files) {
     String name = path.basename(entity.path);
 
     if (entity is Link) continue;
@@ -177,6 +178,19 @@ bool _isBinaryFile(String filename) => _binaryFileTypes.hasMatch(filename);
 File _locateDartFile(File file) {
   if (file.path.endsWith('.dart')) return file;
 
-  return file.parent.listSync().firstWhere(
+  return _listSync(file.parent).firstWhere(
       (f) => f.path.endsWith('.dart'), orElse: () => null);
 }
+
+/**
+ * Return the list of children for the given directory. This list is normalized
+ * (by sorting on the file path) in order to prevent large merge diffs in the
+ * generated template data files.
+ */
+List<FileSystemEntity> _listSync(Directory dir,
+    {bool recursive: false, bool followLinks: true}) {
+  List<FileSystemEntity> results = dir.listSync(
+      recursive: recursive, followLinks: followLinks);
+  results.sort((entity1, entity2) => entity1.path.compareTo(entity2.path));
+  return results;
+}