Note that all these new directories are spread across multiple commits since I don't want any one commit to be *too* big.