Trying to put the multiplication in order
Added a better way to subdivide the matrix