Create mustache.impl library
diff --git a/lib/mustache.dart b/lib/mustache.dart
index ba7c513..9d5683b 100644
--- a/lib/mustache.dart
+++ b/lib/mustache.dart
@@ -1,15 +1,6 @@
 library mustache;
 
-@MirrorsUsed(metaTargets: const [mustache])
-import 'dart:mirrors';
-
-part 'src/lambda_context.dart';
-part 'src/node.dart';
-part 'src/parse.dart';
-part 'src/render_context.dart';
-part 'src/scanner.dart';
-part 'src/template.dart';
-part 'src/token.dart';
+import 'src/mustache_impl.dart' as impl;
 
 /// [Mustache template documentation](http://mustache.github.com/mustache.5.html)
 
@@ -30,7 +21,7 @@
       {bool lenient,
        bool htmlEscapeValues,
        String name,
-       PartialResolver partialResolver}) = _Template.fromSource;
+       PartialResolver partialResolver}) = impl.TemplateImpl.fromSource;
   
   String get name;
   String get source;
diff --git a/lib/src/lambda_context.dart b/lib/src/lambda_context.dart
index 2d634af..c5b9a73 100644
--- a/lib/src/lambda_context.dart
+++ b/lib/src/lambda_context.dart
@@ -1,4 +1,4 @@
-part of mustache;
+part of mustache.impl;
 
 /// Passed as an argument to a mustache lambda function.
 class _LambdaContext implements LambdaContext {
diff --git a/lib/src/mustache_impl.dart b/lib/src/mustache_impl.dart
new file mode 100644
index 0000000..2ecd10a
--- /dev/null
+++ b/lib/src/mustache_impl.dart
@@ -0,0 +1,14 @@
+library mustache.impl;
+
+@MirrorsUsed(metaTargets: const [mustache])
+import 'dart:mirrors';
+
+import 'package:mustache/mustache.dart';
+
+part 'lambda_context.dart';
+part 'node.dart';
+part 'parse.dart';
+part 'render_context.dart';
+part 'scanner.dart';
+part 'template.dart';
+part 'token.dart';
diff --git a/lib/src/node.dart b/lib/src/node.dart
index 5140574..2b1356a 100644
--- a/lib/src/node.dart
+++ b/lib/src/node.dart
@@ -1,4 +1,4 @@
-part of mustache;
+part of mustache.impl;
 
 void _renderWithContext(_RenderContext ctx, List<_Node> nodes) {
   if (ctx.indent == null || ctx.indent == '') {
@@ -229,7 +229,7 @@
   
   void render(_RenderContext ctx) {
     var partialName = name;
-    _Template template = ctx.partialResolver == null
+    TemplateImpl template = ctx.partialResolver == null
         ? null
         : ctx.partialResolver(partialName);
     if (template != null) {
diff --git a/lib/src/parse.dart b/lib/src/parse.dart
index 4c032f5..d90a866 100644
--- a/lib/src/parse.dart
+++ b/lib/src/parse.dart
@@ -1,4 +1,4 @@
-part of mustache;
+part of mustache.impl;
 
 List<_Node> _parse(String source,
              bool lenient,
diff --git a/lib/src/render_context.dart b/lib/src/render_context.dart
index c114380..ffc4d73 100644
--- a/lib/src/render_context.dart
+++ b/lib/src/render_context.dart
@@ -1,4 +1,4 @@
-part of mustache;
+part of mustache.impl;
 
 final RegExp _validTag = new RegExp(r'^[0-9a-zA-Z\_\-\.]+$');
 final RegExp _integerTag = new RegExp(r'^[0-9]+$');
@@ -17,7 +17,7 @@
       this.source)
     : _stack = new List.from(stack); 
   
-  _RenderContext.partial(_RenderContext ctx, _Template partial, String indent)
+  _RenderContext.partial(_RenderContext ctx, TemplateImpl partial, String indent)
       : this(ctx._sink,
           ctx._stack,
           ctx.lenient,
diff --git a/lib/src/scanner.dart b/lib/src/scanner.dart
index 20fc849..6f2b81b 100644
--- a/lib/src/scanner.dart
+++ b/lib/src/scanner.dart
@@ -1,4 +1,4 @@
-part of mustache;

+part of mustache.impl;

 

 class _Scanner {

   

diff --git a/lib/src/template.dart b/lib/src/template.dart
index 1e5643b..440e284 100644
--- a/lib/src/template.dart
+++ b/lib/src/template.dart
@@ -1,8 +1,8 @@
-part of mustache;

+part of mustache.impl;

 

-class _Template implements Template {

+class TemplateImpl implements Template {

  

-  _Template.fromSource(String source, 

+  TemplateImpl.fromSource(String source, 

        {bool lenient: false,

         bool htmlEscapeValues : true,

         String name,

diff --git a/lib/src/token.dart b/lib/src/token.dart
index 8e2e4dd..2683a04 100644
--- a/lib/src/token.dart
+++ b/lib/src/token.dart
@@ -1,4 +1,4 @@
-part of mustache;
+part of mustache.impl;
 
 class _Token {