can determine .isFirst() and .isLast() using collection key
update .remove() method to fully handle index or key-based removals