modified linked-list