added doubly linked list