     ido = { OID: x.id, Type: x.constructor.name, Element: x.props }
     msg.Elements.push(ido)
 
+
+    if x.setEndpointData?
+      x.setEndpointData()
+      ep = x.endpoint[0]
+      msg.Elements.push(
+        { OID: ep.id, Type: ep.constructor.name, Element: ep.props }
+      )
+      ep = x.endpoint[1]
+      msg.Elements.push(
+        { OID: ep.id, Type: ep.constructor.name, Element: ep.props }
+      )
+
     console.log(msg)
-
     $.post "/addie/"+dsg+"/design/update", JSON.stringify(msg), (data) =>
       x.id.name = x.props.name
       x.id.sys = x.props.sys


    for x in xs
      if x.shp?
      x.props.position = x.shp.obj3d.position
      ido = { OID: x.id, Type: x.constructor.name, Element: x.props }
      msg.Elements.push(ido)

      if x.links?
        updateLink(l) for l in x.links

      )
      @mh.ve.surface.elements.push(@mh.placingLink)
      @mh.placingLink.props.name = @mh.ve.namemanager.getName("lnk")
      
      ifname = ""
      if ixs[0].object.userData.props.interfaces?
        ifname = "ifx"+Object.keys(ixs[0].object.userData.props.interfaces).length
        ixs[0].object.userData.props.interfaces[ifname] = {
          name: ifname,
          latency: 0,
          capacity: 1000
        }
      @mh.placingLink.endpoint[0] = ixs[0].object.userData
      @mh.placingLink.ep_ifx[0] = ifname
      @mh.placingLink.endpoint[0].links.push(@mh.placingLink)
      ixs[0].object.lines.push(@mh.placingLink.ln)
      @mh.ve.container.onmousemove = (eve) => @handleMove1(eve)
