it may be easier to just add an optional result array pointer; so (Cont, Comp0, Comp1, Comp2, CompX, Makes)...that way if Makes is specified it can be set for destroy if it appears on the pointer and if it isn't specified it doesn't destroy, could even array it for multiple results (Makes0, Makes1, ...