prototype of kernel