 public class SpectraXMLObjectNode: SpectraXMLNode {
     public typealias NodeType = MDLObject
     
-    public func parse(container: Container, elem: XMLElement, options: [String : Any]) -> NodeType {
+    public func parse(container: Container, elem: XMLElement, options: [String : Any] = [:]) -> NodeType {
         var object = MDLObject()
+        
+        if let name = elem.attributes["name"] {
+            object.name = name
+        }
         
         let transformSelector = SpectraXMLNodeType.Transform.rawValue
         if let transformTag = elem.firstChild(tag: transformSelector) {

    
    public static func copy(object: NodeType) -> NodeType {
        let cp = MDLObject()
        
        if let transform = object.transform {
            if transform is MDLTransform {

            vertexDesc = MDLVertexDescriptor(vertexDescriptor: parentDesc)
        }
        
        let attributeSelector = "vertex-attributes > vertex-attribute"
        for (idx, el) in elem.css(attributeSelector).enumerate() {
            if let ref = el.attributes["ref"] {
                let vertexAttr = container.resolve(MDLVertexAttribute.self, name: ref)!
