- added some color (mostly to try to disambiguate the lines)
- several of the things named '*-element' actually belong under content, not element.
- element has 'content', not the substructs.
- convertible?s are content's.
- the 'content' field in an element is not a list, but simply a content.
- there are a bunch of things under target-element.
- image-element was missing fields
- collect-element was missing the collect field