add parallel (nee gather), with tests