finally finish(?) convolve function
merge branch