M2M Refactor (Phase 10)