     let customModule: String?
   }
 
-  enum XML {
-    enum Path {
-      static let scene = "/document/scenes/scene/objects/*[@sceneMemberID=\"viewController\"]"
-      static let segue = "/document/scenes/scene//connections/segue[string(@identifier)]"
-    }
-    enum Tag {
-      static let placeholder = "viewControllerPlaceholder"
-    }
-    enum Attribute {
-      static let customClass = "customClass"
-      static let customModule = "customModule"
-      static let id = "id"
-      static let identifier = "identifier"
-      static let initialVC = "initialViewController"
-      static let storyboardIdentifier = "storyboardIdentifier"
-    }
+  enum XMLScene {
+    static let path = "/document/scenes/scene/objects/*[@sceneMemberID=\"viewController\"]"
+    static let placeholderTag = "viewControllerPlaceholder"
+    static let customClassAttribute = "customClass"
+    static let customModuleAttribute = "customModule"
+    static let idAttribute = "id"
+    static let initialVCAttribute = "initialViewController"
+    static let storyboardIdentifierAttribute = "storyboardIdentifier"
+  }
+  enum XMLSegue {
+    static let path = "/document/scenes/scene//connections/segue[string(@identifier)]"
+    static let identifierAttribute = "identifier"
+    static let customClassAttribute = "customClass"
+    static let customModuleAttribute = "customModule"
   }
 
   var initialScenes = [String: InitialScene]()

      }
    }

    for segue in document.xpath(XML.Path.segue) {
      let id = segue[XML.Attribute.identifier] ?? ""
      let customClass = segue[XML.Attribute.customClass]
      let customModule = segue[XML.Attribute.customModule]

      segues.insert(Segue(identifier: id, customClass: customClass, customModule: customModule))
    }

    let document = try Fuzi.XMLDocument(string: try path.read())

    let storyboardName = path.lastComponentWithoutExtension
    let initialSceneID = document.root?[XMLScene.initialVCAttribute]
    var initialScene: InitialScene? = nil
    var scenes = Set<Scene>()
    var segues = Set<Segue>()

    for scene in document.xpath(XMLScene.path) {
      guard scene.tag != XMLScene.placeholderTag else { continue }

      let customClass = scene[XMLScene.customClassAttribute]
      let customModule = scene[XMLScene.customModuleAttribute]

      if scene[XMLScene.idAttribute] == initialSceneID {
        initialScene = InitialScene(tag: scene.tag ?? "",
                                    customClass: customClass,
                                    customModule: customModule)
      }
      if let id = scene[XMLScene.storyboardIdentifierAttribute] {
        scenes.insert(Scene(storyboardID: id,
                            tag: scene.tag ?? "",
                            customClass: customClass,
