use zope.schema.getFields instead of zope.schema.getFieldNames
do not include DISPLAY_MODE widgets in extract
removed breakpoints
refactored to support readonly subfields, no luck yet with an ObjectWidget in a MultiWidget