First experiments with diffusion.

In short - work in progress.
Needs refactor.