       updateLink(l) for l in x.links
 
     true
+
+  updates: (xs) =>
+    console.log("updating objects")
+    console.log(xs)
+
+    msg = { Elements: [] }
+
+    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
+
+      true
+
+    console.log(msg)
+    
+    $.post "/addie/"+dsg+"/design/update", JSON.stringify(msg), (data) =>
+      for x in xs
+        x.id.name = x.props.name
+        x.id.sys = x.props.sys
 
 
 class EBoxSelectHandler

    console.log(msg)

    $.post "/addie/"+dsg+"/design/update", JSON.stringify(msg), (data) =>
      console.log("update post response")
      console.log(data)
      x.id.name = x.props.name
      x.id.sys = x.props.sys


  addElement: (ef, x, y) ->
    e = new ef.constructor(@baseRect, x, y, 50)
    e.props.name = @ve.namemanager.getName(e.constructor.name.toLowerCase())
    e.id.name = e.props.name
    e.props.design = dsg
    @elements.push(e)
    @ve.render()
