def form_intro(pol_areas, description=None):
    """
    Form the introduction line

    Parameters
    ----------
    pol_areas: list of all the policy areas included in the reform used to
        create a description of the reform
    description: user provided description of the reform
    """
    # these are all of the possible strings used in the introduction sentance
    intro_text = {
        1: "modifing the {} section of the tax code",
        2: "modifing the {} and {} sections of the tax code",
        3: "modifing the {}, {}, and {} sections of the tax code",
        4: ("modifing a number of sections of the tax code, "
            "including {}, {}, and {}")
    }
    if not description:
        num_areas = min(len(pol_areas), 4)
        intro_line = intro_text[num_areas]
        if num_areas == 1:
            return intro_line.format(pol_areas[0])
        elif num_areas == 2:
            return intro_line.format(pol_areas[0], pol_areas[1])
        else:
            return intro_line.format(pol_areas[0], pol_areas[1], pol_areas[2])
    else:
        return description