diff --git a/mutalyzer/entrypoints/mutalyzer.py b/mutalyzer/entrypoints/mutalyzer.py
index c455ae1ed8e290c8982d7883880c9950c613e0e0..c04a112a2ce1c8c2df0988f4ecd1a0e406d77d0e 100644
--- a/mutalyzer/entrypoints/mutalyzer.py
+++ b/mutalyzer/entrypoints/mutalyzer.py
@@ -17,7 +17,12 @@ from .. import output
 from .. import variantchecker
 
 
-class MyEncoder(json.JSONEncoder):
+# TODO: This seems like a bit of a weird trick. In any case, we should
+#   follow the pattern from the `json` documentation to call
+#   `JSONEncoder.default(self, o)` as a fallback.
+#
+# https://docs.python.org/2/library/json.html#json.JSONEncoder.default
+class AlleleEncoder(json.JSONEncoder):
     def default(self, o):
         json_object = o.__dict__
         json_object.update({"hgvs": unicode(o), "weight": o.weight()})
@@ -26,6 +31,7 @@ class MyEncoder(json.JSONEncoder):
     #default
 #MyEncoder
 
+
 def check_name(description):
     """
     Run the name checker.
@@ -128,7 +134,7 @@ def check_name(description):
         print json.dumps({
             #"reference_sequence": reference_sequence,
             #"sample_sequence": sample_sequence,
-            "allele_description": described_allele}, cls=MyEncoder)
+            "allele_description": described_allele}, cls=AlleleEncoder)
 
 
 def main():
diff --git a/mutalyzer/extractor_loader.py b/mutalyzer/extractor_loader.py
deleted file mode 100644
index ee8b097e50518f008daafbde2bd7357da648bf37..0000000000000000000000000000000000000000
--- a/mutalyzer/extractor_loader.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env python
-
-from __future__ import unicode_literals
-
-import sys
-
-import json
-
-import describe
-
-class MyEncoder(json.JSONEncoder):
-    def default(self, o):
-        return o.__dict__
-
-def main():
-    if len(sys.argv) < 3:
-        print "usage: " + sys.argv[0] + " reference sample"
-        exit()
-    #if
-
-    f = open(sys.argv[1], "r")
-    ref = f.read()
-    f.close()
-    f = open(sys.argv[2], "r")
-    alt = f.read()
-    f.close()
-
-    extracted_allele = describe.describe_dna(ref, alt)
-
-    #print "Description Extractor Version " + describe.extractor.VERSION
-    print extracted_allele
-    #print "JSON: " + json.dumps({"reference_sequence": ref, "sample_sequence": alt, "allele_description": extracted_allele}, cls=MyEncoder)
-
-#main
-
-if __name__ == "__main__":
-    main()
diff --git a/mutalyzer/test.py b/mutalyzer/test.py
deleted file mode 100644
index f733aec814afeda4f4c22ef9b8cabfaecb1b2221..0000000000000000000000000000000000000000
--- a/mutalyzer/test.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env python
-
-from __future__ import unicode_literals
-
-import json
-
-import describe
-
-class MyEncoder(json.JSONEncoder):
-    def default(self, o):
-        return o.__dict__
-
-def main():
-    ref = "ACGTCGATTCGCTAGCTTCGGGGGATAGATAGAGATATAGAGATATTTTT"
-    alt = "ACGTCGGTTCGCTAGCTTCGGGGGATAGATAGATATATAGAGATATTTTT"
-
-    extracted_allele = describe.describe_dna(ref, alt)
-
-    print extracted_allele
-    print json.dumps({"reference_sequence": ref, "sample_sequence": alt,
-        "allele_description": extracted_allele}, cls=MyEncoder)
-#main
-
-if __name__ == "__main__":
-    main()
diff --git a/mutalyzer/website/templates/name-checker.html b/mutalyzer/website/templates/name-checker.html
index c2c37d8004a5cbc0316cf019af609a42e30112f5..b58243d9721cb834d202db63bc0ad7064435d38b 100644
--- a/mutalyzer/website/templates/name-checker.html
+++ b/mutalyzer/website/templates/name-checker.html
@@ -215,7 +215,6 @@
         {% if extractedDescription %}
           <h4>Experimental services</h4>
           <p>Genomic description: <code>{{ extractedDescription }}</code></p>
-          <p>Protein description: <code>{{ extractedProtein }}</code></p>
         {% endif %}
       </div>{# class="col-md-8 name-checker-left-column" #}
 
diff --git a/mutalyzer/website/views.py b/mutalyzer/website/views.py
index 36327e1836c4589c610bd7d1c8bd062261fd05f4..0136564bf2b3311410cc1caf0d91b5f58058dfff 100644
--- a/mutalyzer/website/views.py
+++ b/mutalyzer/website/views.py
@@ -273,19 +273,12 @@ def name_checker():
         output.getIndexedOutput('mutated', 0)):
         allele = extractor.describe_dna(output.getIndexedOutput('original', 0),
                                         output.getIndexedOutput('mutated', 0))
-        #prot_allele = describe.describe_protein(
-        #    output.getIndexedOutput('oldprotein', 0),
-        #    output.getIndexedOutput('newprotein', 0, default=''))
-        prot_allele = ''
-
-        extracted = extractedProt = '(skipped)'
+        extracted = '(skipped)'
         if allele:
-            extracted = unicode(allele) #describe.allele_description(allele)
-        if prot_allele:
-            extractedProt = unicode(prot_allele) #describe.allele_description(prot_allele)
+            extracted = unicode(allele)
 
     else:
-        extracted = extractedProt = ''
+        extracted = ''
 
     # Todo: Generate the fancy HTML views for the proteins here instead of in
     #   `mutalyzer.variantchecker`.
@@ -320,7 +313,6 @@ def name_checker():
         'reference_filename'  : reference_filename,  # Todo: Download link is not shown...
         'browserLink'         : browser_link,
         'extractedDescription': extracted,
-        'extractedProtein'    : extractedProt,
         'standalone'          : bool(request.args.get('standalone'))
     }
 
diff --git a/requirements.txt b/requirements.txt
index 3942920811f24a6c0c015255333e09fa7fcc29ff..add9c97c442c2ac35daa22dd66187fafdc61b4a4 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,5 @@
 -e git+https://github.com/LUMC/magic-python.git#egg=Magic_file_extensions
--e git+https://github.com/LUMC/extractor.git@f270ef101e909895d58e47420935f2bbfdb28a3b#egg=extractor
+description-extractor==2.2.1
 Flask==0.10.1
 Jinja2==2.7.3
 MySQL-python==1.2.5