See individual commits for more details