This is a branch I worked on in April, rebased today onto master. May conflict with other "convergence" branches.