using best available threads