     var xml: XMLDocument?
     var parser: Container
     
-    public init(data: NSData, parser: Container? = SpectraXML.initParser()) {
-        self.parser = parser!
+    public init(parser: Container, data: NSData) {
+        // NOTE: both this parser and the container injected into the SpectraXMLNodeParser functions
+        // - should be able to reference the enum types read from the XSD file
+        // - the simplest way to do this is create a container, load the XSD enums onto it, 
+        //   - then use this parser container as a parent: nodeParserContainer = Container(parent: parser)
+        //   - refer to SpectraXMLSpec for an example
+        // - or, if scoping is an issue, apply the enums to both the parser & nodeParser containers
+        self.parser = parser
         
         do {
             xml = try XMLDocument(data: data)

            }
        }
        
        // TODO: decide whether more complicated, nested layouts should be allowed
        if let packedLayout = elem.attributes["packed-layout"] where NSString(string: packedLayout).boolValue {
            vertexDesc.setPackedOffsets()

        }
    }
    
    public class func initParser(parser: Container) -> Container {
        //TODO: how to ensure that typing is consistent?
        // return [fnParse -> Any, fnCast -> MDLType] // this may work
        
