Changes

I will leave comments in the Diff in regards to other parts I just disagree with.