def _list_crossmatch(
            self,
            dbRows):
        """*to a finer grain crossmatch of the input coordinates and the database results.*

        **Key Arguments:**
            - ``dbRows`` -- the rows return from the database on first crossmatch pass.

        **Return:**
            - ``matchIndices1`` -- indices of the coordinate in the original ra and dec lists
            - ``matches`` -- the matched database rows
        """
        self.log.debug('starting the ``_list_crossmatch`` method')

        dbRas = []
        dbRas[:] = [d[self.raCol] for d in dbRows]
        dbDecs = []
        dbDecs[:] = [d[self.decCol] for d in dbRows]

        # 12 SEEMS TO BE GIVING OPTIMAL SPEED FOR MATCHES (VERY ROUGH SPEED
        # TESTS)
        mesh = HTM(
            depth=12,
            log=self.log
        )

        if self.closest:
            maxmatch = 1
        else:
            maxmatch = 0
        matchIndices1, matchIndices2, seps = mesh.match(
            ra1=self.ra,
            dec1=self.dec,
            ra2=np.array(dbRas),
            dec2=np.array(dbDecs),
            radius=float(self.radius / (60. * 60.)),
            maxmatch=maxmatch  # 1 = match closest 1, 0 = match all
        )

        matches = []

        for m1, m2, s in zip(matchIndices1, matchIndices2, seps):
            if self.separations:
                dbRows[m2]["cmSepArcsec"] = s * (60. * 60.)
            matches.append(dbRows[m2])

        self.log.debug('completed the ``_list_crossmatch`` method')
        return matchIndices1, matches
*to a finer grain crossmatch of the input coordinates and the database results.*

        **Key Arguments:**
            - ``dbRows`` -- the rows return from the database on first crossmatch pass.

        **Return:**
            - ``matchIndices1`` -- indices of the coordinate in the original ra and dec lists
            - ``matches`` -- the matched database rows