adding linked list implementation