more added to experiment....

This could probably do with a bit of optimising and such....but the
basic principal seems to work