diff --git a/aleksis/core/tables.py b/aleksis/core/tables.py
index ccf9c61a6b6d90f63ac0a1c5b979bf6b704e8b23..54d3f3e5c75e4c5ac0dca4b8ccfe868f70b7efb2 100644
--- a/aleksis/core/tables.py
+++ b/aleksis/core/tables.py
@@ -1,8 +1,7 @@
-from django.utils.safestring import mark_safe
 from django.utils.translation import gettext_lazy as _
 
 import django_tables2 as tables
-from django_tables2.utils import A, AttributeDict, computed_values
+from django_tables2.utils import A
 
 
 class SchoolTermTable(tables.Table):
@@ -92,45 +91,3 @@ class DashboardWidgetTable(tables.Table):
 
     def render_widget_name(self, value, record):
         return record._meta.verbose_name
-
-
-class MaterializeCheckboxColumn(tables.CheckBoxColumn):
-    """Checkbox column with Materialize support."""
-
-    empty_values = ()
-
-    @property
-    def header(self):
-        """Render the header cell."""
-        default = {"type": "checkbox"}
-        general = self.attrs.get("input")
-        specific = self.attrs.get("th__input")
-        attrs = AttributeDict(default, **(specific or general or {}))
-        return mark_safe("<label><input %s/><span></span></label>" % attrs.as_html())  # noqa
-
-    def render(self, value, bound_column, record):
-        """Render a data cell."""
-        default = {"type": "checkbox", "name": bound_column.name, "value": value}
-        if self.is_checked(value, record):
-            default.update({"checked": "checked"})
-
-        general = self.attrs.get("input")
-        specific = self.attrs.get("td__input")
-
-        attrs = dict(default, **(specific or general or {}))
-        attrs = computed_values(attrs, kwargs={"record": record, "value": value})
-        return mark_safe(  # noqa
-            "<label><input %s/><span></span</label>" % AttributeDict(attrs).as_html()
-        )
-
-
-class SelectColumn(MaterializeCheckboxColumn):
-    """Column with a check box prepared for `ActionForm` forms."""
-
-    def __init__(self, *args, **kwargs):
-        kwargs["attrs"] = {
-            "td__input": {"name": "selected_objects"},
-            "th__input": {"id": "header_box"},
-        }
-        kwargs.setdefault("accessor", A("pk"))
-        super().__init__(*args, **kwargs)
diff --git a/aleksis/core/util/tables.py b/aleksis/core/util/tables.py
new file mode 100644
index 0000000000000000000000000000000000000000..50a27a52bc4e5025375ee6189506efce7e151e7d
--- /dev/null
+++ b/aleksis/core/util/tables.py
@@ -0,0 +1,46 @@
+from django.utils.safestring import mark_safe
+
+from django_tables2 import CheckBoxColumn
+from django_tables2.utils import A, AttributeDict, computed_values
+
+
+class MaterializeCheckboxColumn(CheckBoxColumn):
+    """Checkbox column with Materialize support."""
+
+    empty_values = ()
+
+    @property
+    def header(self):
+        """Render the header cell."""
+        default = {"type": "checkbox"}
+        general = self.attrs.get("input")
+        specific = self.attrs.get("th__input")
+        attrs = AttributeDict(default, **(specific or general or {}))
+        return mark_safe("<label><input %s/><span></span></label>" % attrs.as_html())  # noqa
+
+    def render(self, value, bound_column, record):
+        """Render a data cell."""
+        default = {"type": "checkbox", "name": bound_column.name, "value": value}
+        if self.is_checked(value, record):
+            default.update({"checked": "checked"})
+
+        general = self.attrs.get("input")
+        specific = self.attrs.get("td__input")
+
+        attrs = dict(default, **(specific or general or {}))
+        attrs = computed_values(attrs, kwargs={"record": record, "value": value})
+        return mark_safe(  # noqa
+            "<label><input %s/><span></span</label>" % AttributeDict(attrs).as_html()
+        )
+
+
+class SelectColumn(MaterializeCheckboxColumn):
+    """Column with a check box prepared for `ActionForm` forms."""
+
+    def __init__(self, *args, **kwargs):
+        kwargs["attrs"] = {
+            "td__input": {"name": "selected_objects"},
+            "th__input": {"id": "header_box"},
+        }
+        kwargs.setdefault("accessor", A("pk"))
+        super().__init__(*args, **kwargs)