Initial upload, mostly the same as DMContracts