def METHOD_NAME(self, star, psf, logger=None):
    """Adjust star.fit.flux and star.fit.center
    :param star:        Star we want to adjust
    :param psf:         PSF with which we adjust
    :param logger:      A logger object for logging debug info. [default: None]
    :returns: Star with modified fit and center
    """
    import scipy
    # put in initial guesses for flux, du, dv if they exist
    flux = star.fit.flux
    du, dv = star.fit.center
    params = np.array([flux, du, dv])
    results = scipy.optimize.least_squares(
        fun = self._fit_residual,
        x0 = params,
        args=(star, psf, logger,),
        method='lm', ftol=1e-8, diff_step=1.e-4,
        max_nfev=500)
    # report results
    logger.debug('Adjusted Star Fit Results:')
    logger.debug(results)
    # create new star with new fit
    flux = results.x[0]
    du = results.x[1]
    dv = results.x[2]
    center = (du, dv)
    # also update the chisq, but keep the rest of the parameters from model fit
    chisq = results.cost*2  # Their cost is basically chisq / 2
    fit = StarFit(star.fit.params, params_var=star.fit.params_var,
            flux=flux, center=center, chisq=chisq, dof=star.fit.dof,
            A=star.fit.A, b=star.fit.b)
    star_fit = Star(star.data, fit)
    return star_fit