 }
 
 class DawgNode: CustomStringConvertible, Hashable {
-    static var nextId = 0;
+    private static var nextId = 0;
     
     typealias Edges = [Character: DawgNode]
     
     lazy var edges = Edges()
     var final: Bool = false
     var id: Int
-    var descr: String = ""
+    private var descr: String = ""
     
     init() {
         self.id = self.dynamicType.nextId

        return serialized
    }
    
    func updateDescription() {
        var arr = [final ? "1" : "0"]
        arr.appendContentsOf(edges.map({ "\($0.0)_\($0.1)" }))
        descr = arr.joinWithSeparator("_")


class Dawg {
    var rootNode: DawgNode
    private var previousWord = ""
    
    private lazy var uncheckedNodes = [(parent: DawgNode, letter: Character, child: DawgNode)]()
    private lazy var minimizedNodes = [DawgNode: DawgNode]()
    
    /// Initialize a new instance.
    init() {
