simple recursive search