separate coalescer code and kernels