First version of working 2D convolution