 
 // TODO: Refactor these collections to reduce repeat code
 extension Array where Element: Model {
+    
+    /// Create an array of models from an array of dictionaries 
+    public init?(data: [[String : Any]] ) {
+        guard let instance =  sequence(data.map { Element.read(from: Store(data: $0)) })
+            else  { return nil }
+        self = instance
+    }
     
     /// Create an array of models from a file in the specified format.
     public init?(file: URL, format: Format) {

            else { return nil }
        self = instance
    }

    /// Write the store content to a file in the specified format.
    ///

   /// Return the model array content as data in the specified format.
    public func makeData(format: Format) -> Data? {
        return format.makeData(from: encodeToData() as AnyObject, prettyPrint: true)
    }
    
    /// Return the model array content as a dictionary array
    public func makeDictionaryArray() -> [[String : Any]] {
        return self.encodeToData() as! [[String : Any]]
    }

    func encodeToData() -> Any {
