recursing down lists