Refactor concurrency to use more channels