handle descendants