prefer put! over (go (>! ...))
add missing put!s
add bench