start of linked list code