spawn() now return a channel, rename `parallel` to `join`