New first diffusion code.

New first diffusion code.  Follows original plan, but should be more readable.