Use cases 
- Adding support for a new kinds of content or annotations
Involves providing model and view classes, converter rules and possibly tools and inspectors for working with the content.
- Getting information about and making changes to the surface.
Involves interacting with a surface fragment, which provides a wrapper around a surface, it's document and the current selection. Supported actions include getting information about the current selection, applying annotations to selected content, and modifying the structure of the document.