implement list.first.internal
add list.first and list.last
update info