diff --git a/coolamqp/framing/compilation/utilities.py b/coolamqp/framing/compilation/utilities.py
index 22f2f54c8c48eb8f2d2a56e3885895c5df9b5ab0..8b31476f021a05dc34fc3d28cd0a1fdb1040faec 100644
--- a/coolamqp/framing/compilation/utilities.py
+++ b/coolamqp/framing/compilation/utilities.py
@@ -2,7 +2,6 @@
 from __future__ import absolute_import, division, print_function
 
 import math
-from satella.coding import typednamedtuple
 
 import six
 
@@ -10,21 +9,8 @@ from coolamqp.framing.base import BASIC_TYPES, DYNAMIC_BASIC_TYPES
 
 # docs may be None
 
-
-
-
-__name = ('name', 'name', str)
-
-
-class optgetter(object):
-    def __init__(self, callable):
-        self.callable = callable
-
-    def __call__(self, elem):
-        return self.callable(elem)
-
-
-_Required = type('_Required')
+class _Required(object):
+    pass
 
 class _Field(object):
 
@@ -87,7 +73,6 @@ def get_docs(elem, label=False):
 
 _name = _SimpleField('name', unicode)
 _docs = _ComputedField('docs', lambda elem: get_docs(elem))
-_docsl = _ComputedField('docs', lambda elem: get_docs(elem, label=True))
 
 class BaseObject(object):
 
@@ -137,7 +122,7 @@ class Class(BaseObject):
     FIELDS = [
         _name,
         _ValueField('index', int),
-        _docsl,
+        _ComputedField('docs', lambda elem: get_docs(elem, label=True)),
         _ComputedField('methods', lambda elem: sorted(
             [Method(me) for me in elem.getchildren() if me.tag == 'method'],
             key=lambda m: (m.name.strip('-')[0], -len(m.response)))),
diff --git a/requirements.txt b/requirements.txt
index db1d2d782b8fb08772c3577ac03cb240c982b291..897b05d1921931d68d0b05ef436e47211ec1df65 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,3 @@
 six
 monotonic
 futures
-satella