now using hardware_concurrency as max for threads