 	struct Iterate <0, LAST_PASS, CURRENT_BIT, RADIX_BITS>
 	{
 		template <typename Detail>
-		static cudaError_t Invoke(Enactor *enactor, Detail &detail)
+		static cudaError_t Invoke(Detail &detail)
 		{
 			typedef PassPolicy<0, CURRENT_BIT, typename Detail::KeyTraits, NopKeyConversion> PassPolicy;
 
-			cudaError_t retval = enactor->template EnactPass<Policy, PassPolicy>(detail);
+			cudaError_t retval = detail.template EnactPass<Policy, PassPolicy>();
 			if (retval) return retval;
 
 			return Iterate<
 				1,
 				LAST_PASS,
 				CURRENT_BIT + RADIX_BITS,
-				RADIX_BITS>::Invoke(enactor, detail);
+				RADIX_BITS>::Invoke(detail);
 		}
 	};
 



	//-----------------------------------------------------------------------------
	// Utility Routines
	//-----------------------------------------------------------------------------


		if (detail.num_elements < saturating_load) {

			// Invoke base class enact with small-problem config type
			typedef AutotunedPolicy<
				typename Detail::ProblemType,
				CUDA_ARCH,
				SMALL_SIZE> SmallPolicy;

			return detail.template EnactSort<SmallPolicy>();
		}

		// Invoke base class enact with type
		return detail.template EnactSort<LargePolicy>();
	}
};

