complete the CacheMatrix function