Added WaitForKernel Method to actually wait for the kernel to complete.
Added different kinds for MatrixMultiplication