diff --git a/passbook/admin/templates/blocks/form.html b/passbook/admin/templates/blocks/form.html
new file mode 100644
index 0000000000..6f34c49c37
--- /dev/null
+++ b/passbook/admin/templates/blocks/form.html
@@ -0,0 +1,59 @@
+{% load utils %}
+
+{% csrf_token %}
+{% for field in form %}
+{% if field.help_text %}
+
+  {{ field.help_text }}
+
+{% endif %}
+
+{% endfor %}
diff --git a/passbook/core/requirements.txt b/passbook/core/requirements.txt
index 19b8526dc0..ac93703d6f 100644
--- a/passbook/core/requirements.txt
+++ b/passbook/core/requirements.txt
@@ -1,7 +1,6 @@
 django>=2.0
 django-reversion
 django-model-utils
-django-crispy-forms
 djangorestframework
 PyYAML
 raven
diff --git a/passbook/core/settings.py b/passbook/core/settings.py
index 71a20b539b..76e14027a0 100644
--- a/passbook/core/settings.py
+++ b/passbook/core/settings.py
@@ -56,7 +56,6 @@ INSTALLED_APPS = [
     'django.contrib.staticfiles',
     'reversion',
     'rest_framework',
-    'crispy_forms',
     'passbook.core',
     'passbook.admin',
     'passbook.api',
diff --git a/passbook/lib/templatetags/utils.py b/passbook/lib/templatetags/utils.py
index ec1b9b7e2a..c4befd2fa1 100644
--- a/passbook/lib/templatetags/utils.py
+++ b/passbook/lib/templatetags/utils.py
@@ -157,3 +157,8 @@ def related_models(context, model_path):
 def unslug(_input):
     """Convert slugs back into normal strings"""
     return _input.replace('-', ' ').replace('_', ' ')
+
+
+@register.filter(name='css_class')
+def css_class(field, css):
+   return field.as_widget(attrs={"class": css})