I'd keep the pointer, the `base_product` is used only during installation, in installed system it is not needed so this saves some resources. 

And I have updated all `base_product` removals with `delete` (two places) so there should be no memory leak.