Add kernel estimator
Simplify kernel implementation, make tests faster and get them passing