I would refactor all the uses of

```for n, v in dic.iteritems():
   if isinstance(v, Foo)```

with something more readable like    ```for name, field_type in mcl.get_field_types(dic, Foo)```