update the kernel implementation and constructor
adding the test case for the kernel methods and constructor
implement abstract class