I think this is it, lots of comments and typo fixes