vectorised direct convolution and stuff