Heterogeneous Diffusion