         throw JsonDecodeError.WrongType(rawValue: json, expectedType: "Dictionary")
       }
 
-      var errors: [String: JsonDecodeError] = [:]
+      var errors: [(String, JsonDecodeError)] = []
       var result: [Key: Value] = [:]
 
       for (key, val) in dict {

        throw JsonDecodeError.WrongType(rawValue: json, expectedType: "Array")
      }

      var errors: [Int: JsonDecodeError] = [:]
      var result: [Element] = []

      for (index, element) in arr.enumerate() {

        return try decoder(field)
      }
      catch let error as JsonDecodeError {
        errors.append((name, error))
      }
    }
    else {
