add last() and first()