added diffusion model