TryUpdate is a "difficult" API