working on diffusion rules handling