     public func parse(descriptorManager: SpectraDescriptorManager, elem: ONOXMLElement, options: [String: AnyObject] = [:]) -> NodeType {
         let vertexDesc = NodeType()
         
-        let attributeDescSelector = "vertex-attribute-descriptor-array > vertex-attribute-descriptor"
+        let attributeDescSelector = "vertex-attribute-descriptors > vertex-attribute-descriptor"
         elem.enumerateElementsWithCSS(attributeDescSelector) {(el, idx, stop) in
             let node = S3DXMLMTLVertexAttributeDescriptorNode()
             vertexDesc.attributes[Int(idx)] = node.parse(descriptorManager, elem: el)
         }
         
-        let bufferLayoutDescSelector = "vertex-buffer-layout-descriptor-array > vertex-buffer-layout-descriptor"
+        let bufferLayoutDescSelector = "vertex-buffer-layout-descriptors > vertex-buffer-layout-descriptor"
         elem.enumerateElementsWithCSS(bufferLayoutDescSelector) { (el, idx, stop) in
             let node = S3DXMLMTLVertexBufferLayoutDescriptorNode()
             vertexDesc.layouts[Int(idx)] = node.parse(descriptorManager, elem: el)
         }
-        // - build each VertexAttributeDescriptor & append
-        // - build each BufferLayoutDescriptor & append
+        
         return vertexDesc
     }
 }

    
    public func parse(descriptorManager: SpectraDescriptorManager, elem: ONOXMLElement, options: [String : AnyObject] = [:]) -> NodeType {
        let depthDesc = NodeType()

        return depthDesc
    }
}

public class S3DXMLMTLColorAttachmentDescriptorNode: S3DXMLNodeParser {
    public typealias NodeType = MTLRenderPipelineColorAttachmentDescriptor
    public func parse(descriptorManager: SpectraDescriptorManager, elem: ONOXMLElement, options: [String : AnyObject] = [:]) -> NodeType {
        let colorDesc = NodeType()

        return colorDesc
    }
}

//
//public class S3DXMLMTLVertexDescriptorNode: S3DXMLNodeParser {
//    public typealias NodeType =
//    public func parse(descriptorManager: SpectraDescriptorManager, elem: ONOXMLElement, options: [String : AnyObject] = [:]) -> NodeType {
//
//        return NodeType()
//    }
//}


        if let label = elem.valueForAttribute("label") as? String {
            samplerDesc.label = label
        }
        if let minFilter = elem.valueForAttribute("min-filter") as? String {
            let mtlEnum = descriptorManager.mtlEnums["mtlSamplerMinMapFilter"]!
            let enumVal = UInt(mtlEnum.getValue(minFilter))
