Doubly linked list implementation.