offload to QUEUE async first, then ensure synchronized