     
     // MARK: - Ink
     
-    private func getInk(for node: TerminalNodeType) -> [InkType]  {
+    private func getInk(for indexes: [Int]) -> (arrInk: [InkType], frame: CGRect)  {
         var arrInk = [InkType]()
-        for i in node.indexes { arrInk.append(ink[i]) }
-        
-        return arrInk
+        for i in indexes { arrInk.append(ink[i]) }
+        
+        return (arrInk, arrInk.reduce(arrInk.first!.frame) { $0.1.frame.union($0.0) })
     }
     
     private func padded(rect: CGRect) -> CGRect {

        guard indexOfSelectedNode != nil else { return nil }
        
        let node = nodes[indexOfSelectedNode!]
        let arrInk = getInk(for: node)
        let frame = arrInk.reduce(arrInk.first!.frame) { $0.1.frame.union($0.0) }
        
        add(ink: RemovedInk(indexes: Set(node.indexes), frame: frame))
        

        var nodeFrames = [CGRect]()
        
        for (nodeIndex, node) in nodes.enumerated() {
            let (arrInk, frame) = getInk(for: node.indexes)
            
            nodeInks.append(arrInk)
            nodeFrames.append(padded(rect: frame))

            guard frame.contains(point) else { continue }
            
