         }
     }
     
-    var _reference: Box
+    /// Box object whose reference count is checked for uniqueness.
+    @_versioned
+    internal var _reference: Box
     
-    /// Constructs the copy-on-write wrapper around the given reference and copy function
+    /// Constructs the copy-on-write wrapper around the given reference.
     ///
     /// - Parameters:
     ///   - reference: The object that is to be given value semantics
-    ///   - externalRetain: Whether the object should be copied on next mutation regardless of Swift ARC uniqueness.
     @inline(__always)
     init(_ reference: Reference) {
         self._reference = Box(reference)

            // copy the reference if multiple structs are backed by the reference
            if isUniquelyReferenced == false {
                
                // make copy
                let copy = _reference.unbox.copy
                _reference = Box(copy)
            }

    }
    
    /// Helper property to determine whether the reference is uniquely held.
    internal var isUniquelyReferenced: Bool {
        @inline(__always)
        mutating get {
            return isKnownUniquelyReferenced(&_reference) // check ARC reference count of box
        }
    }
}
