optionally let looping-go put the result on a channel