async now closes returned channel. wrote test for put