being careful about the DOM hierarchy