分开dispatcher和check