improved token refresh