added auto refresh token mechanism + on_refresh_token callback