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

}

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


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() {
