smarter update