fail earlier
eliminate extra Dispacher, improve performance