Documentation on the code - to be continued - Jyothish