Doubly linked list implementation