This can race, we need some kind of lock here.