Implement reduce()
Implement collect()