cached inverse matrix
second commit