refactoring TaskCompletionService