implemented StructuredDocument