added ExicuteOnSwap functionality to kernel and CustomKernel