Fix up rebase-weirdness in the mpi-only branch

Remove duplicate methods, reapply a refactoring applied to master.