rewrite explanation of makeCacheMatrix