1. A document management system which includes a processor and memory, the document management system comprising: a module database configured to store at least a first module and a second module; a search engine configured to allow a user to search for modules in said database according to one or more search rules; an access control engine configured to control access to said first and second modules based on different user classes according to one or more access rules; a construction engine configured to use one or more of said first and second modules to construct a document according to one or more construction rules so that the document includes content based on the first module and content based on the second module; and a module review engine configured to allow multiple subscribers to review and approve or reject a new version of said first module during a review period, said construction engine configured to use a prior version of said first module for documents assembled by a subscriber until said new version of the first module has been approved by the subscriber, said document assembly system configured to prohibit the subscriber's access to said prior version of the first module after said review period has expired for the subscriber if the subscriber approves the new version of the first module, wherein the approval or rejection of the new version of the first module by the subscriber does not affect the ability of different subscribers to approve or reject the new version of the first module; the module review engine further configured to allow multiple subscribers to review and approve or reject a new version of said second module during a review period, said construction engine configured to use a prior version of said second module for documents assembled by a subscriber until said new version of the second module has been approved by the subscriber, said document assembly system configured to prohibit the subscriber's access to said prior version of the second module after said review period has expired for the subscriber if the subscriber approves the new version of the second module, wherein the approval or rejection of the new version of the second module by the subscriber does not affect the ability of different subscribers to approve or reject the new version of the second module.