                         // remove old node
                         removedView.removeFromSuperview()
                     }
-//                    iNew = iNew - 1 //is this useful?
                 }
             } else if let newChildNode = newChildNode, let oldChildNode = oldChildNode {
                 // Recurse on Children

    }
    
    private func updateChildren(_ oldNode: IsNode, _ newNode: IsNode) {
        let newLength = newNode.children.count
        let oldLength = oldNode.children.count
        let length = max(oldLength, newLength)

            } else if oldChildNode == nil { // New Node Added
                if let retChildNode = retChildNode,
                    let parenView = self.engine?.renderer.nodeIdViewMap[newNode.uniqueIdentifier] {
                    log("💉 Adding node \(type(of: retChildNode)) (id:\(retChildNode.uniqueIdentifier))")
                    updates.append {
                        self.engine?.renderer.render(tree: retChildNode, in: parenView)
                    }
                }
            } else if let retChildNode = retChildNode,
            let oldChildNode = oldChildNode, !areTreesEqual(retChildNode, oldChildNode) {
                // Replacement by non patchable node (different node type.)
                if let parenView = self.engine?.renderer.nodeIdViewMap[newNode.uniqueIdentifier],
                    let removedView = self.engine?.renderer.nodeIdViewMap[oldChildNode.uniqueIdentifier] {
                    log("💉 Replacing node")
                    updates.append {
