too many changes, including mpi enablement