assignment2 cacheInverseMatrix