add SafeQueue & Thread & Callback