Implement initial() generator
Refactor first()
Fix last()
uniq() to lazy