introduce templated gibbs kernels w/ appropriate concept classes

ideally we can replace our existing gibbs kernels with these
templated kernels