comments and a lot of variable changes for them to make sense