Convolution factored out into class

Also uses non-hardcoded Gaussian kernel now