Why should we use Virtual Sequence and Virtual Sequencer?

I know one reason why we are using Virtual Sequence.

Reason - To drive multiple sequences and To use 1 sequence multiple times.

Why should we use Virtual Sequencer?

Reason - The testcase writer should not allow to see the testbench.

Is this reason correct? If not. What is the reason to use the both.

In reply to varunkdave:

Virtual sequneces do not generate sequence items. They are used to orchestrate the agent sequences as required for a ceertain test.
There is no need to use a virtual sequencer. If you do so, you have to have refernces to the agent sequencers in the virtual sequence.