stealing Todd's linked lists