some more update logic