adapt dispatcher to DI