nearly done with LinkedList