diffusion working