complete documentation of the code