Get rid of legacy dispatcher.

Update  #852 to not use legacy_dispatcher.
This probably needs a `@deferred_performer`. It didn't seem to be caught by tests.