Well what I was thinking was instead of "use mpi", developers could use the mpi_interface everywhere. This would be the only change. We could then move mpi_err to mpi_interface as well. Once using the mpi_interface they will have access to all MPI calls just like "use mpi". Let me know what you think, it may not make sense here, but I did something similar to HDF5.