use queue instead of apply_async