     }
 }
 
+// MARK: - JSONString a fix for string enums
 public protocol JSONString: RawRepresentable, JSONInitializable, JSONRepresentable {
     init?(rawValue: String)
     var rawValue: String { get }

    // MARK: - Throwable methods
    public func object(for key: PropertyType) throws -> JSONObject<PropertyType> {
        do {
            return try JSONObject<PropertyType>(json: self[key])
        } catch let error as JSONModelError {
            throw JSONModelError.invalidValueFor(key: key.rawValue, error)
        }

    private static let dateFormatter = DateFormatter()
    
    private func formatter() -> DateFormatter {
        String.dateFormatter.dateFormat = self
        return String.dateFormatter
    }
    
    public func date(from string: String) throws -> Date {
