recursive listing works (kinda)