I should probably add the licensing guff.
Merge after fuckup