basic recursive directory search