add test
add test
add last() and first()
update