A bunch of things..

Let me know if I should split out commits to separated PRs.