MPM refactor