update with better, but flawed concurrency