diff --git a/django_forms_as_jsonschema/jsonschema.py b/django_forms_as_jsonschema/jsonschema.py
index 2aa468f5b38304c8f79fb947f6f9562e739e9b0a..d24fd3cefc3cdb100b9a3e8a4152cffd0a6e1c47 100644
--- a/django_forms_as_jsonschema/jsonschema.py
+++ b/django_forms_as_jsonschema/jsonschema.py
@@ -76,89 +76,92 @@ class JSONSchema:
 
         # string, number, integer, boolean.
 
-        match type(field.widget):
-            case forms.TextInput:
+        if type(field.widget) == forms.TextInput:
+            new_field["type"] = "string"
+
+        elif type(field.widget) == forms.NumberInput:
+            new_field["type"] = "integer" if type(field) == forms.IntegerField else "number"
+
+        elif type(field.widget) == forms.EmailInput:
+            new_field["type"] = "string"
+            new_field["format"] = "email"
+
+        elif type(field.widget) == forms.URLInput:
+            new_field["type"] = "string"
+            new_field["format"] = "url"
+
+        elif type(field.widget) == forms.PasswordInput:
+            new_field["type"] = "string"
+            new_field["format"] = "password"
+            new_field["x-display"] = "password"
+
+        elif type(field.widget) == forms.HiddenInput:
+            new_field["type"] = "string"
+            new_field["format"] = "hidden"
+
+        elif type(field.widget) == forms.MultipleHiddenInput:
+            ...
+
+        elif type(field.widget) in [forms.FileInput, forms.ClearableFileInput]:
+            new_field |= {
+                "type": "string",
+                "contentMediaType": "image/*" if type(field) == forms.ImageField else "*",
+                "writeOnly": True
+            }
+
+        # Fixme: differentiate between clearable and non-clearable
+        # elif type(field.widget) == forms.ClearableFileInput:
+        #     ...
+
+        elif type(field.widget) == forms.Textarea:
+            new_field["x-display"] = "textarea"
+
+        elif type(field.widget) == forms.DateInput:
+            new_field["type"] = "string"
+            new_field["format"] = "date"
+
+        elif type(field.widget) == forms.DateTimeInput:
+            new_field["type"] = "string"
+            new_field["format"] = "date-time"
+
+        elif type(field.widget) == forms.TimeInput:
+            new_field["type"] = "string"
+            new_field["format"] = "time"
+
+        elif type(field.widget) == forms.CheckboxInput:
+            new_field["type"] = "boolean"
+
+        elif type(field.widget) in [forms.Select, forms.SelectMultiple, forms.RadioSelect, forms.CheckboxSelectMultiple,
+                                    forms.NullBooleanSelect]:
+            one_of = []
+            for const, title in field.widget.choices:
+                one_of.append(dict(const=str(const), title=str(title)))
+
+            if field.widget.allow_multiple_selected:
+                new_field["type"] = "array"
+                new_field["items"] = {
+                    "type": "string",
+                    "oneOf": one_of
+                }
+            else:
                 new_field["type"] = "string"
+                new_field["oneOf"] = one_of
 
-            case forms.NumberInput:
-                new_field["type"] = "integer" if type(field) == forms.IntegerField else "number"
+            if type(field.widget) == forms.RadioSelect:
+                new_field["x-display"] = "radio"
+            elif type(field.widget) == forms.CheckboxSelectMultiple:
+                new_field["x-display"] = "checkbox"
 
-            case forms.EmailInput:
-                new_field["type"] = "string"
-                new_field["format"] = "email"
-
-            case forms.URLInput:
-                new_field["type"] = "string"
-                new_field["format"] = "url"
-
-            case forms.PasswordInput:
-                new_field["type"] = "string"
-                new_field["format"] = "password"
-                new_field["x-display"] = "password"
-
-            case forms.HiddenInput:
-                new_field["type"] = "string"
-                new_field["format"] = "hidden"
+        elif type(field.widget) == forms.SplitDateTimeWidget:
+            ...
 
-            case forms.MultipleHiddenInput:
-                ...
+        elif type(field.widget) == forms.SplitHiddenDateTimeWidget:
+            ...
 
-            case forms.FileInput | forms.ClearableFileInput:
-                new_field |= {
-                        "type": "string",
-                        "contentMediaType": "image/*" if type(field) == forms.ImageField else "*",
-                        "writeOnly": True
-                    }
+        elif type(field.widget) == forms.SelectDateWidget:
+            ...
 
-            # Fixme: differentiate between clearable and non-clearable
-            # case forms.ClearableFileInput:
-            #     ...
-
-            case forms.Textarea:
-                new_field["x-display"] = "textarea"
-
-            case forms.DateInput:
-                new_field["type"] = "string"
-                new_field["format"] = "date"
-
-            case forms.DateTimeInput:
-                new_field["type"] = "string"
-                new_field["format"] = "date-time"
-
-            case forms.TimeInput:
-                new_field["type"] = "string"
-                new_field["format"] = "time"
-
-            case forms.CheckboxInput:
-                new_field["type"] = "boolean"
-
-            case forms.Select | forms.SelectMultiple | forms.RadioSelect | forms.CheckboxSelectMultiple, forms.NullBooleanSelect:
-                one_of = []
-                for const, title in field.widget.choices:
-                    one_of.append(dict(const=str(const), title=str(title)))
-
-                if field.widget.allow_multiple_selected:
-                    new_field["type"] = "array"
-                    new_field["items"] = {
-                        "type": "string",
-                        "oneOf": one_of
-                    }
-                else:
-                    new_field["type"] = "string"
-                    new_field["oneOf"] = one_of
-
-                if type(field.widget) == forms.RadioSelect:
-                    new_field["x-display"] = "radio"
-                elif type(field.widget) == forms.CheckboxSelectMultiple:
-                    new_field["x-display"] = "checkbox"
-
-            case forms.SplitDateTimeWidget:
-                ...
-
-            case forms.SplitHiddenDateTimeWidget:
-                ...
-
-            case forms.SelectDateWidget:
-                ...
+        else:
+            print(field, type(field), type(field.widget))
 
         self.schema["properties"][name] = new_field
diff --git a/pyproject.toml b/pyproject.toml
index 50bae850f7cf37cd36afe2ec43ee60561190a202..5e2501c6d9952b4679549b8e47f8ebb859ff4ca7 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,7 +5,7 @@ description = ""
 authors = ["Julian Leucker <leuckerj@gmail.com>"]
 
 [tool.poetry.dependencies]
-python = "^3.10"
+python = "^3.9"
 Django = "^4.1"
 
 [tool.poetry.dev-dependencies]