collector class uses pipe once