Ok I think this should be the final version, and I shall rebase this all
to oblivion!