         let mixed = Mixed(float: float, int: int)
         let nested = Nested(simple: simple, mixed: mixed)
 
-        let wHandle = copy(of: w.handle)
-        let bHandle = copy(of: b.handle)
-        let floatHandle = copy(of: float.handle)
-        let intHandle = copy(of: int.handle)
+        let wHandle = w.handle.makeCopy()
+        let bHandle = b.handle.makeCopy()
+        let floatHandle = float.handle.makeCopy()
+        let intHandle = int.handle.makeCopy()
 
         let expectedNested = Nested(
             _handles: [wHandle, bHandle, floatHandle, intHandle])

                let genericMS = Generic<Mixed, Simple>(t: mixed, u: simple)
                let generic = UltraNested(a: genericSM, b: genericMS)

                let wHandle1 = copy(of: w.handle)
                let wHandle2 = copy(of: w.handle)
                let bHandle1 = copy(of: b.handle)
                let bHandle2 = copy(of: b.handle)
                let floatHandle1 = copy(of: float.handle)
                let floatHandle2 = copy(of: float.handle)
                let intHandle1 = copy(of: int.handle)
                let intHandle2 = copy(of: int.handle)

                let expectedGeneric = UltraNested<Simple, Mixed>(
                    _handles: [wHandle1, bHandle1, floatHandle1,  intHandle1,

        let int = Tensor<Int32>(1)
        let mixed = Mixed(float: float, int: int)

        let floatHandle = float.handle.makeCopy()
        let intHandle = int.handle.makeCopy()

        let expectedMixed = Mixed(_handles: [floatHandle, intHandle])

