Part 2 of !158 (merged). I'm still working on a Part 3.
This will create a new commit in order to revert the existing changes.