shared convolution added