use AtomicReference