     /// - Throws: `EpubParserError.xmlParse`, `EpubParserError.missingFile`
     func parseContainer() throws {
         let containerPath = "META-INF/container.xml"
-        var containerData:Data?
+
+        guard let containerData = try container.data(relativePath: containerPath) else {
+            throw EpubParserError.missingFile(path: containerPath)
+        }
+
+        var containerXml: AEXMLDocument
+        // TODO: when a guard ... catch is implemented
         do {
-            containerData = try container.data(relativePath: containerPath)
-        } catch {
-            throw EpubParserError.missingFile(path: containerPath)
-        }
-
-        var containerXml: AEXMLDocument
-        do {
-            containerXml = try AEXMLDocument(xml: containerData!)
+            containerXml = try AEXMLDocument(xml: containerData)
         }
         catch {
             throw EpubParserError.xmlParse(underlyingError: error)

    public init(container: EpubDataContainer) {
        self.container = container
        // TODO: (ACA) initialize the `self.publication` here, so we dont have
        //       sto force unwrap stuff later
    }

    /// Parses the EPUB container files and builds a `Publication` representation.


        // Look for the first `<roofile>` element
        let rootFileElement = containerXml.root["rootfiles"]["rootfile"]

        guard rootFile = rootFileElement.attributes["full-path"] else {
            throw EpubParserError.missingElement(msg: "Missing rootfile element in container.xml")
        }

        // Get the specifications version the EPUB conforms to
        if let version = rootFileElement.attributes["version"] {
            epubVersion = Int(version)
        } // TODO: (ACA) no else?
    }

    /// Parses an OPF package document in the container.
