if we wanted to reimplement this, would the approach now be to make what was previously the product pointed to by "user_license_product" a SubProduct*?