Added better commenting and better printing