use convolution to speed up things