implement the document entities