added recursive walk to support new api structures, fixes #2