replaces visibleChildren() with children(boolean) as the CMS profile check must be done by the caller