def METHOD_NAME(self, t, w0, dt):
    """
    Leapfrog updates the velocities offset a half-step from the
    position updates. If we're given initial conditions aligned in
    time, e.g. the positions and velocities at the same 0th step,
    then we have to initially scoot the velocities forward by a half
    step to prime the integrator.
    Parameters
    ----------
    dt : numeric
        The first timestep.
    """
    # here is where we scoot the velocity at t=t1 to v(t+1/2)
    F0 = self.F(t.copy(), w0.copy(), *self._func_args)
    a0 = F0[self.ndim:]
    v_1_2 = w0[self.ndim:] + a0*dt/2.
    return v_1_2