engines: add a NewDispatcher constructor