I'm a little fuzzy on when exactly `go` should be used vs. `core.async/thread` or something like that. It's probably worth investigating.