This is not thread safe... Two threads could both end up creating a key.