Is this thread safe? Does it need to be?