added common hierarchy for Block and Document

- pair programmed with @lightguard
- fixes extensions invoked when parent is Document