convolution first version