all following changes are mostly whitespace, better look at it with ?w=1