             operation.addCompletionBlock { [weak self, weak operation] in
                 guard let queue = self, let operation = operation else { return }
                 queue.delegate?.operationQueue?(queue, operationDidFinish: operation, withErrors: [])
-                queue.removeOpFromSet(operation)
+                operation.dependencies.forEach { operation.removeDependency($0) }
             }
         }
         

                produceHandler: { [weak self] in
                    self?.addOperation($1)
                },
                finishHandler: { [weak self] in
                    if let q = self {
                        q.delegate?.operationQueue?(q, operationDidFinish: $0, withErrors: $1)
                        q.removeOpFromSet($0)
                    }
                }
            )

            }
        }
    }
}
