Added examples copied from README, fixed README
diff --git a/README.md b/README.md
index cd5f1b1..30c17be 100644
--- a/README.md
+++ b/README.md
@@ -22,14 +22,14 @@
 	  {{/ names }}
 	  {{! I am a comment. }}
 	''';
-	
+
 	var template = new Template(source, name: 'template-filename.html');
-	
+
 	var output = template.renderString({'names': [
 		{'firstname': 'Greg', 'lastname': 'Lowe'},
 		{'firstname': 'Bob', 'lastname': 'Johnson'}
 	]});
-	
+
 	print(output);
 }
 ```
@@ -86,8 +86,8 @@
 
 ```dart
 var t = new Template('{{# foo }}');
-var lambda = (_) => 'bar'};
-t.renderString({'foo': lambda); // bar
+var lambda = (_) => 'bar';
+t.renderString({'foo': lambda}); // bar
 ```
 
 ```dart
@@ -98,20 +98,20 @@
 
 ```dart
 var t = new Template('{{# foo }}oi{{/ foo }}');
-var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>'};
-t.renderString({'foo': lambda); // <b>OI</b>
+var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
+t.renderString({'foo': lambda}); // <b>OI</b>
 ```
 
 ```dart
 var t = new Template('{{# foo }}{{bar}}{{/ foo }}');
-var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>'};
-t.renderString({'foo': lambda, 'bar': 'pub'); // <b>PUB</b>
+var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
+t.renderString({'foo': lambda, 'bar': 'pub'}); // <b>PUB</b>
 ```
 
 ```dart
 var t = new Template('{{# foo }}{{bar}}{{/ foo }}');
-var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>'};
-t.renderString({'foo': lambda, 'bar': 'pub'); // <b>PUB</b>
+var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
+t.renderString({'foo': lambda, 'bar': 'pub'}); // <b>PUB</b>
 ```
 
 In the following example `LambdaContext.renderSource(source)` re-parses the source string in the current context, this is the default behaviour in many mustache implementations. Since re-parsing the content is slow, and often not required, this library makes this step optional.
@@ -119,5 +119,5 @@
 ```dart
 var t = new Template('{{# foo }}{{bar}}{{/ foo }}');
 var lambda = (LambdaContext ctx) => ctx.renderSource(ctx.source + '{{cmd}}')};
-t.renderString({'foo': lambda, 'bar': 'pub', 'cmd': 'build'); // pub build
+t.renderString({'foo': lambda, 'bar': 'pub', 'cmd': 'build'}); // pub build
 ```
diff --git a/example/basic.dart b/example/basic.dart
new file mode 100644
index 0000000..89a293c
--- /dev/null
+++ b/example/basic.dart
@@ -0,0 +1,22 @@
+import 'package:mustache/mustache.dart';
+
+main() {
+  var source = '''
+    {{# names }}
+          <div>{{ lastname }}, {{ firstname }}</div>
+    {{/ names }}
+    {{^ names }}
+      <div>No names.</div>
+    {{/ names }}
+    {{! I am a comment. }}
+  ''';
+
+  var template = new Template(source, name: 'template-filename.html');
+
+  var output = template.renderString({'names': [
+      {'firstname': 'Greg', 'lastname': 'Lowe'},
+      {'firstname': 'Bob', 'lastname': 'Johnson'}
+  ]});
+
+  print(output);
+}
\ No newline at end of file
diff --git a/example/lambdas.dart b/example/lambdas.dart
new file mode 100644
index 0000000..c8ffd92
--- /dev/null
+++ b/example/lambdas.dart
@@ -0,0 +1,33 @@
+import 'package:mustache/mustache.dart';
+
+main() {
+  var t = new Template('{{ foo }}');
+  var lambda = (_) => 'bar';
+  var output = t.renderString({'foo': lambda}); // bar
+  print(output);
+
+  t = new Template('{{# foo }}hidden{{/ foo }}');
+  lambda = (_) => 'shown';
+  output = t.renderString({'foo': lambda}); // shown
+  print(output);
+
+  t = new Template('{{# foo }}oi{{/ foo }}');
+  lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
+  output = t.renderString({'foo': lambda}); // <b>OI</b>
+  print(output);
+
+  t = new Template('{{# foo }}{{bar}}{{/ foo }}');
+  lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
+  output = t.renderString({'foo': lambda, 'bar': 'pub'}); // <b>PUB</b>
+  print(output);
+
+  t = new Template('{{# foo }}{{bar}}{{/ foo }}');
+  lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
+  output = t.renderString({'foo': lambda, 'bar': 'pub'}); // <b>PUB</b>
+  print(output);
+
+  t = new Template('{{# foo }}{{bar}}{{/ foo }}');
+  lambda = (LambdaContext ctx) => ctx.renderSource(ctx.source + '{{cmd}}');
+  output = t.renderString({'foo': lambda, 'bar': 'pub', 'cmd': 'build'}); // pub build
+  print(output);
+}
diff --git a/example/nested_paths.dart b/example/nested_paths.dart
new file mode 100644
index 0000000..5472ce7
--- /dev/null
+++ b/example/nested_paths.dart
@@ -0,0 +1,7 @@
+import 'package:mustache/mustache.dart';
+
+main() {
+  var template = new Template('{{ author.name }}');
+  var output = template.renderString({'author': {'name': 'Greg Lowe'}});
+  print(output);
+}
diff --git a/example/partials.dart b/example/partials.dart
new file mode 100644
index 0000000..a0c105f
--- /dev/null
+++ b/example/partials.dart
@@ -0,0 +1,16 @@
+import 'package:mustache/mustache.dart';
+
+main() {
+  var partial = new Template('{{ foo }}', name: 'partial');
+
+  var resolver = (String name) {
+     if (name == 'partial-name') { // Name of partial tag.
+       return partial;
+     }
+  };
+
+  var t = new Template('{{> partial-name }}', partialResolver: resolver);
+
+  var output = t.renderString({'foo': 'bar'}); // bar
+  print(output);
+}