Modified some of the comment's make it easier to understand flatten*