got diffusion solver working