Get rid of legacy dispatcher.

Update  #852 to not use legacy_dispatcher.
And this will need to be adjusted to take into account `deferred_performer`.