use more recent core.async