move the mmc over to using unique_ptr