Correctly create cell buffers and handle cell buffer sparseness in the kernel