replace dispatch params with opts. begin adding cache logic to prevent flooding.