actually, we should really synchronize this way