concurrency but need to handle termination gracefully