update due to threadsafe