double linked list finished implementation