   
   public init() {}
   
-  enum MustacheToken {
-    case Text(String)
-    case Tag(String)
-    case UnescapedTag(String)
-    case SectionStart(String)
-    case InvertedSectionStart(String)
-    case SectionEnd(String)
-    case Partial(String)
+  private enum MustacheToken {
+    case text                (String)
+    case tag                 (String)
+    case unescapedTag        (String)
+    case sectionStart        (String)
+    case invertedSectionStart(String)
+    case sectionEnd          (String)
+    case partial             (String)
   }
   
   private var start   : UnsafePointer<CChar>? = nil

        if isUnescaped {
          p = p! + 3 // skip }}}
          let s = String.fromCString(marker, length: len)!
          return .UnescapedTag(s)
        }
        
        p = p! + 2 // skip }}

      return parseTag()
    }
    else {
      return .text(parseText())
    }
  }
  
  mutating private func parseTag() -> MustacheToken {
    guard p != nil else { return .text("") }
    guard p!.pointee == cStart && la1 == cStart else { return .text("") }
    
    let isUnescaped = la2 == cStart
    
