         fatalError("init(coder:) not supported")
     }
     
-    override func date(from string: String) -> Date? {
-        for dateFormat in self.dateFormats {
+    private func attemptParsing(from string: String, formats: [String]) -> Date? {
+        for dateFormat in formats {
             self.dateFormat = dateFormat
             if let date = super.date(from: string) {
                 return date

        return nil
    }
    
}

        "d MMM yyyy HH:mm:ss Z"
    ]
    
    let backupFormats = [
        "d MMM yyyy HH:mm:ss zzz",
        "d MMM yyyy HH:mm zzz"
    ]

    override init() {
        super.init()
        self.timeZone = TimeZone(secondsFromGMT: 0)
