Inst override of objects inside a uvm_object

I have a uvm_object “pkt_gen”. It’s creates, randomizes, and returns packet transactions, via get().

Inside of pkt_gen, there exists a transaction object “my_pkt”.
I would like to perform an instance-override of “my_pkt”. My attempt is, from test:
pkt_transaction::type_id::set_inst_override(pkt_ext1::get_type(), “uvm_test_top.env.Agent1.sequencer.MySeq.pkt_gen.my_pkt” );

However, because pkt_gen is a uvm_object, it has no hierarchical path. I tried using the sequence “path” trick, but this did not produce a hierarchical path for my generator object:

pkt_gen = ip_PktGen::type_id::create("pkt_gen",,get_full_name());

I realized this, because in the new() of my generator, get_full_path returns an empty string.

It doesn’t matter if I create the generator in the test or the sequence, it never yields a path.

I want a convenient class for spitting out packets, but I have no way to modify the type of packets it creates using the factory…
I can, of course, swap out the actual generator with an extended class (because it’s a child of my sequence), but I don’t know how I would use this technique to change the type of “my_pkt” that gets created.

I seems weird to make it a uvm_component, and stick it in the test or the env… I’ll try that I guess.

[edit] I tried making it a component and now it has a path… and works fine. Still curious about my question, but I can at least move forward.