Let's refactor JavaKernel, moving the init logic from constructor to Builder. This would allow for easier subclassing and creating custom kernels