             e.to   = copiedCross[ crossings.index(of: orig.to  )! ]
         }
         
-        return Link(name: name, crossings: copiedCross)
+        return Link(name: name ?? self.name, crossings: copiedCross)
     }
     
     public var components: [Component] {

        return Set( crossings.flatMap{ x -> [Edge] in x.edges } )
    }
    
    public func copy() -> Link {
        let edges = Dictionary(pairs: allEdges.map{ e -> (Int, Edge) in (e.id, e) } )
        
        let copiedEdges = edges.mapValues{ e in Edge(e.id) }

    }
    
    public var mirrored: Link {
        let L = self.copy(name: "m\(name)")
        for x in L.crossings {
            x.changeCrossing()
        }
