fold dispatch_shift into dispatch, binary size reduction