simplify owership control of dispatch objects
seperate CLSetup to its own header