updated the list implementation