updated cacheSolve