worked more on matrix products