finished linked list first pass