refresh token logic in program