adding documentation to describe the algorithm/program