An update by campbellbarton (removed "return {'CANCELLED'}" from the operators' cancel() methods)