Seems no one will set MainDocumentInfo inner data except MainDocumentHandler. Otherwise every data member will needs a setter method only used by MainDocumentHandler.