 
     private var pointerData: DataWithPointer
 
-    /// Array of [code, bitsCount] arrays.
-    private var tree: [[Int]]
+    private var tree: [HTNode]
     private let leafCount: Int
-
-    private var newTree: [HTNode]
 
     private let coding: Bool
 

            case .branch(_):
                let leftChildIndex = 2 * index + 1
                if leftChildIndex < self.leafCount {
                    switch self.newTree[leftChildIndex] {
                    case .leaf(let foundLeftSymbol):
                        if foundLeftSymbol == symbol {
                            index = leftChildIndex


                let rightChildIndex = 2 * index + 2
                if rightChildIndex < self.leafCount {
                    switch self.tree[rightChildIndex] {
                    case .leaf(let foundRightSymbol):
                        if foundRightSymbol == symbol {
                            index = rightChildIndex
