         self.defaultConfigurationName = defaultConfigurationName
         self.defaultConfigurationIsVisible = defaultConfigurationIsVisible
     }
-    
-    /// Initializes the element with the reference and a dictionary that contains its properties.
-    ///
-    /// - Parameters:
-    ///   - reference: element reference.
-    ///   - dictionary: dictionary that contains its properties.
-    /// - Throws: an error if any of the attributes is missing or the type is wrong.
-    public init(reference: UUID, dictionary: [String : Any]) throws {
-        self.reference = reference
-        let unboxer = Unboxer(dictionary: dictionary)
-        self.buildConfigurations = try unboxer.unbox(key: "buildConfigurations")
-        self.defaultConfigurationIsVisible = try unboxer.unbox(key: "defaultConfigurationIsVisible")
-        self.defaultConfigurationName = try unboxer.unbox(key: "defaultConfigurationName")
-    }
-    
-    // MARK: - Public
+
+}
+
+extension XCConfigurationList {
     
     /// Returns a new configuration list adding a configuration.
     ///

import Unbox

// This is the element for listing build configurations.
public struct XCConfigurationList: ProjectElement, PBXProjPlistSerializable {
    
    // MARK: - Attributes
    
    /// Element reference.
    public let reference: UUID
    
    /// Element isa.
    public static var isa: String = "XCConfigurationList"
    
    /// Element build configurations.
    public let buildConfigurations: Set<UUID>

        }
        return nil
    }

}

// MARK: - XCConfigurationList Extension (ProjectElement)

extension XCConfigurationList: ProjectElement {
    
    public static func == (lhs: XCConfigurationList,
                           rhs: XCConfigurationList) -> Bool {
        return lhs.reference == rhs.reference &&
            lhs.buildConfigurations == rhs.buildConfigurations &&
            lhs.defaultConfigurationIsVisible == rhs.defaultConfigurationIsVisible
    }
    
    public var hashValue: Int { return self.reference.hashValue }
    
    public init(reference: UUID, dictionary: [String : Any]) throws {
        self.reference = reference
        let unboxer = Unboxer(dictionary: dictionary)
        self.buildConfigurations = try unboxer.unbox(key: "buildConfigurations")
        self.defaultConfigurationIsVisible = try unboxer.unbox(key: "defaultConfigurationIsVisible")
        self.defaultConfigurationName = try unboxer.unbox(key: "defaultConfigurationName")
    }
    
}
