Added more extensive comments