Added extensive comments
Added extensive comments