implement makeCacheMatrix and cacheSolve function