added Caching the Inverse of a Matrix