I am not proud of how big this commit is.
I changed things!