<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def make_supercells_with_defects(self, scaling_matrix):
 """ Generate a sequence of supercells in which each supercell contains a single interstitial, except for the first supercell in the sequence which is a copy of the defect-free input structure. Args: scaling_matrix (3x3 integer array):
 scaling matrix to transform the lattice vectors. Returns: scs ([Structure]):
 sequence of supercells. """

        scs = []
        sc = self._structure.copy()
        sc.make_supercell(scaling_matrix)
        scs.append(sc)
        for ids, defect_site in enumerate(self._defect_sites):
            sc_with_inter = sc.copy()
            sc_with_inter.append(
                defect_site.species_string,
                defect_site.frac_coords,
                coords_are_cartesian=False,
                validate_proximity=False,
                properties=None)
            if not sc_with_inter:
                raise RuntimeError(
                    "could not generate supercell with" " interstitial {}".format(
                        ids + 1))
            scs.append(sc_with_inter.copy())
        return scs