note, the "first element child" is not "element.firstChild" but "element.firstElementChild". Not that it has any importance here, but might make sense to change the comment