added thread_safe_queue