Small refactor to use core.async channels.

Closes #3.