revised linkedlist