New first diffusion code.  Follows original plan, but is more readable now.