Merge master into your refactor branch

I merged master into your branch because a lot has changed.