recursive now works, but not in a separate lib