recursive inspect