add generic kernel, add unittest