These changes add Matrix Inversion Caching