makeCacheMatrix implementation