Clarify dispatcher interface by factoring out a trait
Make notation of dispatch methods nicer