use core async goodness