Simplified if_reachable_neighbor and if_reachable_child and avoid redundant processing