add documentation to the code