source code: http://ostermiller.org/find_loop_sin...nked_list.html