This needs a more detailed explanation of the return, especially with the negative return at line 79.