improve: do not create another thread for the internal queue