Refactored the BaseDocumentChangeEvent class hierarchy a little bit.